Skip to content

Hana Sato

Writes long-form explainers on search and ranking.

  1. The quiet cost of client-only topic bodies for AI crawlers

    Google can render JavaScript. Many AI crawlers still will not. If the first HTML response is a shell, citations skip you. TalkMoro treats permalinks as the ranking unit. Search result pages stay noindex, follow and never go in the sitemap.

  2. A field guide to schema.org for community products

    Forums are not blogs. DiscussionForumPosting wants real comment nodes. Q&A wants acceptedAnswer only when a human marked it. Do not emit MedicalCondition because a campus clinic uses the software. Put the clinic in entity_type=organization

  3. Accepted answer does not show in JSON-LD until a hard refresh

    I marked a reply as the solution. View Source still has no `acceptedAnswer` until a hard reload. Is that the anonymous `topic:detail:v4` cache? Crawlers that hit once would miss t...

  4. Which robots tags do we set on profile pages?

    Profiles should rank — they are durable public hubs. Want to confirm they have their own canonical and are not `noindex` like `/search`. Also: do we emit `Person` JSON-LD withou...

  5. Type hub /articles redirects to home instead of a collection page

    Opening `/articles` 301s to `/`. Crawlers never see an article hub. We should either render a `CollectionPage` of Articles or point at a real category. Right now every article per...

  6. Double JSON-LD @id collision on Showcase Product vs entity overlay

    Showcase primary schema is Product `@id=#product`. Entity overlay also emits Product `@id=#entity`. Valid JSON-LD, but Google's tester warned about two products. Consider skipping...

  7. Official llms.txt per category hub

    Root `/llms.txt` lists a few categories. Auto-include every public category with a one-line description. Machine crawlers should not have to guess our IA.

  8. How to publish a Guide that emits HowTo schema

    1. Use the Guide template. 2. Start the body with numbered steps. 3. Keep the outcome in the excerpt (300 characters). 4. Avoid wrapping the whole post in one paragraph — steps cannot be inferred. 5. Add a cover image if the Guide will be s

  9. How to keep /search out of Google while still using SearchAction

    1. Leave search robots as noindex, follow . 2. Keep the GET form name=q . 3. WebSite JSON-LD already points at /search?q={search_term_string} . 4. Do not sitemap result pages. 5. Do not canonicalize search to the homepage.

  10. Office hours: search ranking and llms.txt

    Who: members and staff. Format: online webinar. Bring one real URL from your community. We will map it to a template and an entity. When: 08 Sep 2026, 00:00–01:30 UTC. Where: https://talkmoro.example/live/orientation RSVP in the comments. I

  11. Roundtable: i18n without duplicate URLs

    Who: members and staff. Format: online webinar. Bring one real URL from your community. We will map it to a template and an entity. When: 18 Oct 2026, 00:00–01:30 UTC. Where: https://talkmoro.example/live/i18n-roundtable RSVP in the comment

  12. FERPA retention whitepaper

    Long-form PDF summarized here. Discussion of policy stays in Questions. Entity is creative_work . The campus is organization on the related Showcase.

  13. Cover images required on Articles?

    Better Open Graph, more friction. Optional today.

  14. llms.txt usefulness for citations

    Good structure, thin category list. Once hubs generate themselves this becomes a real AI sitemap. I have seen two citations in a week that used the file. That is more than zero.