Geodocs.dev

URL Structure Best Practices for AI Search Citations

ShareLinkedIn

Open this article in your favorite AI assistant for deeper analysis, summaries, or follow-up questions.

AI engines treat URLs as citation identifiers, not just retrieval pointers. Short kebab-case slugs, shallow depth, canonical handling of query parameters, consistent trailing slashes, and stable fragment IDs all increase the odds your URL is the one cited — and the one followed when a user clicks an AI-generated answer.

TL;DR

Use short kebab-case slugs (3-5 words), keep paths at 2-3 levels deep, declare a canonical for any URL with marketing or tracking parameters, pick one trailing-slash convention and enforce it with 301s, reserve #fragment for in-page jumps (not for distinct content), and never break a URL after publication. AI engines deduplicate and rank URLs differently than Google's blue links — Ahrefs found AI Mode and AI Overviews cite the same URL only ~13.7% of the time across overlapping queries (Search Engine Journal, 2025). URL stability is what makes a citation portable across engines.

Why URL structure matters for AI citations

A URL is the citation. When ChatGPT, Perplexity, Gemini, or Google AI Overviews attach a source to an answer, the URL is what readers click and what other AI engines cross-reference. Three properties drive citation behaviour:

  1. Parsability. AI engines extract structure from the URL itself — domain, section, slug — to determine topical category and freshness signals.
  2. Stability. Citations depreciate when URLs change. Engines re-crawl on different cadences; a URL that 301's mid-cycle can drop from one engine while still appearing in another.
  3. Deduplication. Engines collapse near-duplicates (with/without trailing slash, with/without ?ref=...) into a single canonical citation. The canonical you declare is the one they cite.

Independent analyses show AI engines do not simply re-rank Google: only ~12% of AI-cited URLs appear in Google's top 10 organic for the same query (ZipTie, 2026). Retrieval is its own pipeline, and clean URLs help your page survive every stage of it.

Slug design

The slug is the most-extracted segment of the URL. Best practice for AI search:

  • Length: 3-5 meaningful words. Long enough to disambiguate, short enough to stay under ~60-70 characters total URL length.
  • Format: kebab-case lowercase. Hyphens separate words; no underscores, no camelCase, no spaces. Search engines have treated hyphens as word boundaries since 2007, and AI engines follow the same convention.
  • Words: nouns and entity names. Match the canonical question or the canonical entity. Drop stopwords ("the", "a", "for") unless they are part of an entity name.
  • No dates unless the page is dated. /2024-q4-roadmap is fine; /2024-best-crm is a maintenance trap.
  • No category numbers. Pick stable terms; numeric IDs are opaque.
Bad slugBetter slug
/post?id=12345/url-structure-ai-search-best-practices
/2025BestCRM_Tools/best-crm-tools
/articles/what-is-the-difference-between-rss-and-atom/rss-vs-atom
/blog/this-is-our-new-feature-launch/feature-launch-q3-2026

Depth and hierarchy

Two to three path segments is the sweet spot:

  • 2 segments for top-level concepts: /technical/structured-data-for-ai-search.
  • 3 segments for sub-topics or series: /case-studies/saas/atlassian-aeo-rollout.
  • 4+ segments signal "deep archive" to AI engines and rank lower in retrieval.

Map each path segment to a hub: /technical/ is itself a citable page; /technical/structured-data-for-ai-search is a spoke that links back. AI engines that crawl the hub gain context for siblings — useful when one query fan-out branches into adjacent sub-queries.

Query parameters

LLMs and AI crawlers handle parameters inconsistently. Single Grain's analysis describes the practical pattern: tracking parameters (?utm_source=...) are usually stripped, but functional ones (?lang=en, ?page=2) are preserved (Single Grain, 2026). Two rules:

  1. Declare a canonical with for every variant. The canonical is what AI engines cite, regardless of which variant the user clicked.
  2. Use parameters only for state, not content. /products?id=42 is fragile; /products/42-widget-pro is citable. Reserve query strings for filters, sort orders, and tracking — never for core content identity.

Pages that accept arbitrary parameters (search results, faceted listings) should noindex parameter combinations and surface a small set of curated landing pages for AI engines to cite.

Trailing slashes

Pick one and enforce it. Both https://example.com/page and https://example.com/page/ resolve, but if both serve the same content with no canonical, AI engines may cite either form, splitting citation share. Conventions:

  • Trailing slash for "section" or "directory" routes (/technical/).
  • No trailing slash for "leaf" content (/technical/url-structure-ai-search-best-practices).
  • 301 the non-canonical variant so crawlers consolidate.

Whichever convention you pick, apply it consistently and serve a 301 (not 302) for the alternate form.

Fragment identifiers

The #section portion of a URL is invisible to most server-side analytics but very visible to AI engines, which use anchors for citation precision. Patterns to follow:

  • Add id attributes to H2 and H3 headings so the URL /page#how-it-works jumps to a specific section.
  • Use stable, semantic IDs. #how-it-works is good; #section-3 is fragile.
  • Do not route content via fragment. Single-page apps that load distinct content based on #/route are invisible to most AI crawlers; render the same content at a real URL.

When AI engines cite a long-form article, they often cite the URL with a fragment to a specific section. If your IDs are stable, the citation lands the reader on the right paragraph; if you renumber, citations break silently.

URL stability rules

Once published, a URL should never change without a redirect plan. Practical guardrails:

  • Treat the URL as identity. If the title changes, do not re-slug. AI engines that have already cached the URL will keep citing it.
  • 301 every move. Keep the redirect alive indefinitely; AI crawlers re-validate citations on long cadences (weeks to months).
  • Avoid redirect chains. AI crawlers commonly abandon chains beyond two hops.
  • Watch for accidental 404s. A returned 404 on a previously cited URL often translates into the citation being dropped at the next crawl.

IDN and non-ASCII characters

Internationalized Domain Names (IDN) and non-ASCII slug characters work but introduce risk:

  • Punycode-encode the domain at the registrar level (xn--...).
  • Percent-encode non-ASCII slug characters for portability.
  • For multi-language sites, prefer subdirectories (/de/ rather than IDN domains) plus hreflang for AI engines that respect it.

Common mistakes that hurt AI citations

  • Inconsistent trailing slashes split citation share between two near-duplicates.
  • Marketing-tracking parameters in the canonical link, fragmenting citation telemetry.
  • Generic slugs like /post-1234 that strip topical signal.
  • Renumbered fragment IDs that silently break long-tail citations.
  • Multi-hop redirect chains that AI crawlers abandon.
  • Fragment-based routing on SPAs that hides content from AI bots.

How to audit your URLs

  1. Crawl the site with Screaming Frog or Sitebulb and export every URL with status code, canonical, and .</li> <li>Filter for parameters, multiple trailing-slash variants, and 4+ depth.</li> <li>Spot-check 20 of your most-cited URLs in ChatGPT, Perplexity, and AI Mode; confirm the same URL appears in each.</li> <li>Patch redirect chains, declare canonicals, and add stable id attributes to headings.</li> <li>Re-run the citation panel in 30 days.</li> </ol> <h2 id="faq">FAQ</h2> <h3 id="q-does-the-order-of-words-in-a-slug-matter-for-ai-citations">Q: Does the order of words in a slug matter for AI citations?</h3> <p>Yes, but less than for traditional SEO. AI engines tokenize slugs and match them against the canonical question; word order is one signal among many. Place the most identity-bearing word (the entity or canonical noun) first when possible.</p> <h3 id="q-should-i-use-html-or-no-extension">Q: Should I use .html or no extension?</h3> <p>Modern AI engines treat both equivalently as long as the response is HTML and the canonical is correct. New sites should default to extensionless URLs for cleaner citations.</p> <h3 id="q-can-i-shorten-urls-through-a-redirector-for-ai-citations">Q: Can I shorten URLs through a redirector for AI citations?</h3> <p>Avoid shortening on your own site. Redirector links (bit.ly, custom shorteners) appear less stable to AI engines and are sometimes downranked because they cannot be parsed for topical signal.</p> <h3 id="q-do-trailing-slashes-really-change-citation-share">Q: Do trailing slashes really change citation share?</h3> <p>In practice, yes — when AI engines see two URLs serve identical content, they pick one canonically. If you do not declare which, the choice is non-deterministic and citations split between variants. A site-wide 301 to your canonical convention solves this in a single deploy.</p> <h3 id="q-how-do-fragment-identifiers-help-llms-cite-my-page-more-precisely">Q: How do fragment identifiers help LLMs cite my page more precisely?</h3> <p>Fragments let an AI engine cite a specific section rather than the whole page, which is strictly more useful to readers. Pages with stable section IDs earn more deep-link citations from Perplexity and Gemini Deep Research, where citations often target the most relevant section.</p></div><div style="margin-top:64px"><h2 style="font-size:18px;font-weight:600;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--border-default)">Related Articles</h2><div style="display:grid;grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));gap:16px"><a style="text-decoration:none" data-related-article="404-page-ai-crawler-handling" data-related-position="1" href="/technical/404-page-ai-crawler-handling"><div class="card"><span class="badge badge-green" style="margin-bottom:8px">guide</span><h3 style="font-size:15px;font-weight:600;color:var(--text-heading);margin-bottom:4px">404 Page AI Crawler Handling: Avoiding Citation Loss During Migrations</h3><p style="font-size:13px;color:var(--text-secondary);line-height:1.5">Migration playbook for keeping AI citations during URL changes — hard 404 vs soft 404, 410 Gone, redirect chains, sitemap cleanup, and refetch monitoring.</p></div></a><a style="text-decoration:none" data-related-article="accept-encoding-for-ai-crawlers" data-related-position="2" href="/technical/accept-encoding-for-ai-crawlers"><div class="card"><span class="badge badge-green" style="margin-bottom:8px">specification</span><h3 style="font-size:15px;font-weight:600;color:var(--text-heading);margin-bottom:4px">Accept-Encoding (Brotli, Gzip) for AI Crawlers</h3><p style="font-size:13px;color:var(--text-secondary);line-height:1.5">Specification for serving Brotli, gzip, and zstd to AI crawlers via Accept-Encoding negotiation: which bots support which codecs, fallback rules, and Vary handling.</p></div></a><a style="text-decoration:none" data-related-article="accept-language-and-ai-language-detection" data-related-position="3" href="/technical/accept-language-and-ai-language-detection"><div class="card"><span class="badge badge-green" style="margin-bottom:8px">specification</span><h3 style="font-size:15px;font-weight:600;color:var(--text-heading);margin-bottom:4px">Accept-Language and AI Language Detection</h3><p style="font-size:13px;color:var(--text-secondary);line-height:1.5">Specification for Accept-Language negotiation and html lang attribution that lets AI crawlers detect locale correctly without cross-locale citation leaks.</p></div></a></div></div></article><div style="padding-left:40px" class="toc-sidebar"><nav style="position:sticky;top:88px;font-size:13px;line-height:1.6;max-height:calc(100vh - 100px);overflow-y:auto"><div style="font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:var(--color-cool-gray);margin-bottom:12px">On this page</div><a href="#tl-dr" style="display:block;padding:4px 0;padding-left:0;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:none">TL;DR</a><a href="#why-url-structure-matters-for-ai-citations" style="display:block;padding:4px 0;padding-left:0;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:none">Why URL structure matters for AI citations</a><a href="#slug-design" style="display:block;padding:4px 0;padding-left:0;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:none">Slug design</a><a href="#depth-and-hierarchy" style="display:block;padding:4px 0;padding-left:0;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:none">Depth and hierarchy</a><a href="#query-parameters" style="display:block;padding:4px 0;padding-left:0;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:none">Query parameters</a><a href="#trailing-slashes" style="display:block;padding:4px 0;padding-left:0;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:none">Trailing slashes</a><a href="#fragment-identifiers" style="display:block;padding:4px 0;padding-left:0;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:none">Fragment identifiers</a><a href="#url-stability-rules" style="display:block;padding:4px 0;padding-left:0;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:none">URL stability rules</a><a href="#idn-and-non-ascii-characters" style="display:block;padding:4px 0;padding-left:0;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:none">IDN and non-ASCII characters</a><a href="#common-mistakes-that-hurt-ai-citations" style="display:block;padding:4px 0;padding-left:0;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:none">Common mistakes that hurt AI citations</a><a href="#how-to-audit-your-urls" style="display:block;padding:4px 0;padding-left:0;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:none">How to audit your URLs</a><a href="#faq" style="display:block;padding:4px 0;padding-left:0;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:none">FAQ</a><a href="#q-does-the-order-of-words-in-a-slug-matter-for-ai-citations" style="display:block;padding:4px 0;padding-left:16px;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:1px solid var(--border-default)">Q: Does the order of words in a slug matter for AI citations?</a><a href="#q-should-i-use-html-or-no-extension" style="display:block;padding:4px 0;padding-left:16px;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:1px solid var(--border-default)">Q: Should I use .html or no extension?</a><a href="#q-can-i-shorten-urls-through-a-redirector-for-ai-citations" style="display:block;padding:4px 0;padding-left:16px;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:1px solid var(--border-default)">Q: Can I shorten URLs through a redirector for AI citations?</a><a href="#q-do-trailing-slashes-really-change-citation-share" style="display:block;padding:4px 0;padding-left:16px;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:1px solid var(--border-default)">Q: Do trailing slashes really change citation share?</a><a href="#q-how-do-fragment-identifiers-help-llms-cite-my-page-more-precisely" style="display:block;padding:4px 0;padding-left:16px;color:var(--text-secondary);text-decoration:none;transition:color 0.15s ease;border-left:1px solid var(--border-default)">Q: How do fragment identifiers help LLMs cite my page more precisely?</a></nav></div></div><style> @media (max-width: 1024px) { .toc-sidebar { display: none !important; } } @media (min-width: 1025px) { article { /* override grid for 3-col with TOC */ } } .article-tag-link:hover { border-color: var(--color-dark-green) !important; color: var(--text-primary) !important; background: rgba(0, 237, 100, 0.06) !important; } </style></main><section style="padding:64px 24px;background:var(--bg-surface);border-top:1px solid var(--border-subtle)"><div style="max-width:520px;margin:0 auto;text-align:center"><div style="font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:var(--color-dark-green);margin-bottom:12px">Stay Updated</div><h2 style="font-family:var(--font-display);font-size:clamp(1.25rem, 3vw, 1.75rem);font-weight:400;color:var(--text-heading);margin-bottom:8px;line-height:1.3">GEO & AI Search Insights</h2><p style="font-size:14px;color:var(--text-secondary);line-height:1.7;margin-bottom:24px">New articles, framework updates, and industry analysis. No spam, unsubscribe anytime.</p><form style="display:flex;flex-wrap:wrap;gap:8px;max-width:420px;margin:0 auto"><input type="email" placeholder="your@email.com" required="" style="flex:1;min-width:200px;padding:12px 16px;border-radius:var(--radius-pill);border:1px solid var(--border-default);background:var(--bg-page);color:var(--text-primary);font-family:var(--font-body);font-size:14px;outline:none;transition:border-color 0.2s ease" value=""/><button type="submit" class="btn btn-primary" style="padding:12px 24px;font-size:14px;opacity:1">Subscribe</button></form></div></section><footer style="background:var(--color-forest-black);border-top:1px solid var(--color-teal-gray);padding:64px 24px 32px"><div style="max-width:1200px;margin:0 auto"><div style="display:grid;grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));gap:48px;margin-bottom:48px"><div><div style="margin-bottom:16px"><img alt="Geodocs.dev" loading="lazy" width="140" height="32" decoding="async" data-nimg="1" style="color:transparent;height:24px;width:auto" src="/geodocs-logo-dark.svg"/></div><p style="font-size:13px;color:var(--color-cool-gray);line-height:1.6;max-width:220px">Structured knowledge for AI search visibility. The canonical reference for GEO, AEO, and AI search optimization.</p></div><div><h4 style="font-family:var(--font-mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:var(--color-mongodb-green);margin-bottom:16px">Learn</h4><ul style="list-style:none;display:flex;flex-direction:column;gap:10px"><li><a class="footer-link" href="/geo/what-is-geo">What Is GEO?</a></li><li><a class="footer-link" href="/aeo/what-is-aeo">What Is AEO?</a></li><li><a class="footer-link" href="/geo/geo-vs-seo">GEO vs SEO</a></li><li><a class="footer-link" href="/reference/geo-aeo-glossary">GEO Glossary</a></li></ul></div><div><h4 style="font-family:var(--font-mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:var(--color-mongodb-green);margin-bottom:16px">Build</h4><ul style="list-style:none;display:flex;flex-direction:column;gap:10px"><li><a class="footer-link" href="/technical/llms-txt">llms.txt Reference</a></li><li><a class="footer-link" href="/technical/how-to-create-llms-txt">Create llms.txt</a></li><li><a class="footer-link" href="/technical/structured-data-for-ai-search">Structured Data</a></li><li><a class="footer-link" href="/technical/ai-txt">ai.txt Reference</a></li></ul></div><div><h4 style="font-family:var(--font-mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:var(--color-mongodb-green);margin-bottom:16px">Strategy</h4><ul style="list-style:none;display:flex;flex-direction:column;gap:10px"><li><a class="footer-link" href="/strategy/ai-visibility-measurement">AI Visibility</a></li><li><a class="footer-link" href="/strategy/geo-content-strategy">Content Strategy</a></li><li><a class="footer-link" href="/strategy/geo-roi-framework">GEO ROI</a></li><li><a class="footer-link" href="/aeo/aeo-content-checklist">AEO Checklist</a></li></ul></div><div><h4 style="font-family:var(--font-mono);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:var(--color-mongodb-green);margin-bottom:16px">Resources</h4><ul style="list-style:none;display:flex;flex-direction:column;gap:10px"><li><a class="footer-link" href="https://github.com/Geodocs-dev">GitHub</a></li><li><a class="footer-link" href="/contact">Contact</a></li><li><a class="footer-link" href="/tags">Tags</a></li><li><a class="footer-link" href="/sitemap.xml">Sitemap</a></li><li><a class="footer-link" href="/llms.txt">llms.txt</a></li><li><a class="footer-link" href="/ai.txt">ai.txt</a></li></ul></div></div><div style="border-top:1px solid var(--color-teal-gray);padding-top:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px"><p style="font-size:12px;color:var(--color-cool-gray)">© <!-- -->2026<!-- --> Geodocs.dev. <!-- -->All rights reserved.</p><p style="font-size:12px;color:var(--color-cool-gray)"><a href="mailto:contact@geodocs.dev" class="footer-link">contact@geodocs.dev</a> · <!-- -->Built for humans and AI agents.</p></div></div><style> .footer-link { font-size: 13px; color: var(--color-silver-teal); text-decoration: none; transition: color 0.2s ease; } .footer-link:hover { color: var(--color-white); } </style></footer><!--$--><!--/$--><script> (function(){ var s=document.createElement('script'); s.src='https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js'; s.defer=true; s.onload=function(){ var isDark=document.documentElement.getAttribute('data-theme')==='dark'; mermaid.initialize({startOnLoad:true,theme:isDark?'dark':'default',securityLevel:'loose'}); mermaid.run(); }; document.head.appendChild(s); })(); </script><script src="/_next/static/chunks/0_k5kz-r4593u.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[86402,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\"],\"GTMNoScript\"]\n3:I[59919,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\"],\"ThemeProvider\"]\n4:\"$Sreact.suspense\"\n5:I[86402,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\"],\"PostHogPageView\"]\n6:I[39756,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\"],\"default\"]\n7:I[37457,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\"],\"default\"]\n9:I[35264,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\"],\"AlgoliaSearchDialog\"]\na:I[56414,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\"],\"GeolifyAIDialog\"]\nb:I[86402,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\"],\"Analytics\"]\nd:I[97367,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\"],\"OutletBoundary\"]\n10:I[97367,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\"],\"ViewportBoundary\"]\n12:I[97367,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\"],\"MetadataBoundary\"]\n14:I[63491,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\",\"/_next/static/chunks/0z~59b-n8nq5n.js\"],\"default\"]\n:HL[\"/_next/static/chunks/0hbz95bqplbsv.css\",\"style\"]\n:HL[\"https://fonts.googleapis.com/css2?family=DM+Serif+Text\u0026family=Plus+Jakarta+Sans:wght@300;400;500;600;700\u0026family=Source+Code+Pro:wght@400;500;600\u0026display=swap\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"technical\",\"url-structure-ai-search-best-practices\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"technical\",{\"children\":[[\"slug\",\"url-structure-ai-search-best-practices\",\"d\",null],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0hbz95bqplbsv.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0ld4q8u-25eux.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0xf6s51ok42m_.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/148t.fhegq9f1.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/05cra..ka3fzk.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem('geodocs-theme');if(t==='dark'){document.documentElement.setAttribute('data-theme','dark')}else{document.documentElement.setAttribute('data-theme','light')}}catch(e){}})()\"}}],[\"$\",\"link\",null,{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.googleapis.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://fonts.gstatic.com\",\"crossOrigin\":\"anonymous\"}],[\"$\",\"link\",null,{\"href\":\"https://fonts.googleapis.com/css2?family=DM+Serif+Text\u0026family=Plus+Jakarta+Sans:wght@300;400;500;600;700\u0026family=Source+Code+Pro:wght@400;500;600\u0026display=swap\",\"rel\":\"stylesheet\"}]]}],[\"$\",\"body\",null,{\"children\":[[\"$\",\"$L2\",null,{}],[\"$\",\"$L3\",null,{\"children\":[[\"$\",\"$4\",null,{\"fallback\":null,\"children\":[\"$\",\"$L5\",null,{}]}],[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[\"$L8\",[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],[\"$\",\"$L9\",null,{}],[\"$\",\"$La\",null,{}]]}],[\"$\",\"$Lb\",null,{}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n(function(){\\n var s=document.createElement('script');\\n s.src='https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js';\\n s.defer=true;\\n s.onload=function(){\\n var isDark=document.documentElement.getAttribute('data-theme')==='dark';\\n mermaid.initialize({startOnLoad:true,theme:isDark?'dark':'default',securityLevel:'loose'});\\n mermaid.run();\\n };\\n document.head.appendChild(s);\\n})();\\n\"}}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L6\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[\"$Lc\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0immojv~8w4~6.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$4\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@e\"}]}]]}],{},null,false,null]},null,false,\"$@f\"]},null,false,\"$@f\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L10\",null,{\"children\":\"$L11\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$4\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L13\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$14\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0hbz95bqplbsv.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"NIAK0ez3QwYT5WEUUjWPI\"}\n"])</script><script>self.__next_f.push([1,"15:[]\nf:\"$W15\"\n"])</script><script>self.__next_f.push([1,"16:I[2971,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\",\"/_next/static/chunks/0immojv~8w4~6.js\"],\"Header\"]\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"$L16\",null,{\"lang\":\"en\",\"dict\":{\"nav\":{\"startHere\":\"Start Here\",\"geo\":\"GEO\",\"aeo\":\"AEO\",\"technical\":\"Technical\",\"strategy\":\"Strategy\",\"reference\":\"Reference\",\"tools\":\"Tools\",\"search\":\"Search docs...\",\"askGeolifyAI\":\"Ask GeolifyAI\",\"beta\":\"Beta\"},\"home\":{\"tagline\":\"The Canonical Knowledge System\",\"headline\":\"Structured knowledge for\",\"headlineHighlight\":\"AI search visibility\",\"subtitle\":\"GEO, AEO, and AI search optimization — defined, structured, and operationalized. Built for SEO professionals, developers, content teams, and AI agents.\",\"ctaPrimary\":\"Start with GEO\",\"ctaSecondary\":\"Read llms.txt spec\",\"trustSignals\":{\"answerFirst\":\"Answer-first content\",\"aiCitable\":\"AI-citable definitions\",\"machineReadable\":\"Machine-readable specs\",\"openFree\":\"Open \u0026 free\"},\"essentialReading\":\"Essential Reading\",\"geoPlaybooks\":\"GEO Playbooks\",\"playbooksSubtitle\":\"Canonical definitions, comparisons, and implementation guides. Start here to build your GEO foundation.\",\"readArticle\":\"Read article\",\"operatorsToolkit\":\"Operator's Toolkit\",\"technicalStandards\":\"Technical Standards for AI Search\",\"technicalSubtitle\":\"Implementation specs, file standards, and measurement frameworks. Everything you need to make your content AI-ready.\",\"knowledgeMap\":\"Knowledge Map\",\"browseBySection\":\"Browse by Section\",\"browseSubtitle\":\"Every concept has one canonical page. Explore the knowledge graph organized by domain.\",\"aiNativeDoc\":\"AI-Native Documentation\",\"builtForHumans\":\"Built for humans.\",\"readableByAI\":\"Readable by AI.\",\"aiNativeSubtitle\":\"Every page on geodocs.dev includes AI summary blocks, structured frontmatter, and machine-readable specs. Our content is designed to be cited by AI systems worldwide.\",\"aiContentSpec\":\"AI Content Spec\",\"viewLlmsTxt\":\"View llms.txt\"},\"sections\":{\"geo\":{\"title\":\"GEO - Generative Engine Optimization\",\"description\":\"Guides, definitions, and frameworks for optimizing content visibility in AI-generated answers.\"},\"aeo\":{\"title\":\"AEO - Answer Engine Optimization\",\"description\":\"How to structure content so AI systems can extract and cite direct answers.\"},\"technical\":{\"title\":\"Technical Implementation\",\"description\":\"llms.txt, ai.txt, structured data, and other technical specs for AI search readiness.\"},\"strategy\":{\"title\":\"Strategy \u0026 Frameworks\",\"description\":\"Business frameworks for AI search visibility — ROI, measurement, and content planning.\"},\"reference\":{\"title\":\"Reference\",\"description\":\"Glossary, cheatsheets, and canonical definitions for GEO/AEO terminology.\"},\"tools\":{\"title\":\"Tools \u0026 Platforms\",\"description\":\"Evaluations, comparisons, and stack recommendations for AI search optimization tools.\"},\"case-studies\":{\"title\":\"Case Studies\",\"description\":\"Evidence-based examples with real data — before/after results and industry applications.\"},\"ai-agents\":{\"title\":\"AI Agents\",\"description\":\"Machine-readable specs and documentation designed specifically for AI parsers and bots.\"}},\"article\":{\"minRead\":\"{min} min read\",\"words\":\"{count} words\",\"updated\":\"Updated {date}\",\"relatedArticles\":\"Related Articles\",\"onThisPage\":\"On this page\",\"topics\":\"Topics\",\"copy\":\"Copy\",\"copied\":\"Copied!\"},\"tags\":{\"browseByTopic\":\"Browse by Topic\",\"exploreTopics\":\"Explore {count} topics across all GEO, AEO, and AI search optimization articles.\",\"articlesTaggedWith\":\"{count} article tagged with \\\"{tag}\\\"|{count} articles tagged with \\\"{tag}\\\"\"},\"newsletter\":{\"stayUpdated\":\"Stay Updated\",\"title\":\"GEO \u0026 AI Search Insights\",\"description\":\"New articles, framework updates, and industry analysis. No spam, unsubscribe anytime.\",\"placeholder\":\"your@email.com\",\"subscribe\":\"Subscribe\",\"success\":\"You're subscribed! We'll keep you updated.\",\"error\":\"Something went wrong. Please try again.\"},\"footer\":{\"learn\":\"Learn\",\"build\":\"Build\",\"strategy\":\"Strategy\",\"resources\":\"Resources\",\"description\":\"Structured knowledge for AI search visibility. The canonical reference for GEO, AEO, and AI search optimization.\",\"allRightsReserved\":\"All rights reserved.\",\"builtForHumansAndAI\":\"Built for humans and AI agents.\"},\"common\":{\"articles\":\"articles\",\"article\":\"article\",\"page\":\"Page {current} of {total}\",\"noArticles\":\"No published articles in this section yet.\",\"checkBackSoon\":\"Content is being actively developed. Check back soon.\",\"loadingArticles\":\"Loading articles…\",\"prev\":\"← Prev\",\"next\":\"Next →\",\"goHome\":\"Go home\",\"startWithGEO\":\"Start with GEO\"},\"notFound\":{\"label\":\"404 - Page Not Found\",\"title\":\"This page doesn't exist yet.\",\"description\":\"The content you're looking for may be in development. Geodocs.dev is actively building the canonical knowledge base for GEO and AEO.\"},\"error\":{\"title\":\"Something went wrong\",\"description\":\"An unexpected error occurred. Our team has been notified.\",\"tryAgain\":\"Try Again\"},\"contact\":{\"getInTouch\":\"Get In Touch\",\"contactUs\":\"Contact Us\",\"heroDescription\":\"Have a question about GEO, AEO, or AI search optimization? Want to collaborate or contribute? We'd love to hear from you.\",\"name\":\"Name\",\"email\":\"Email\",\"subject\":\"Subject\",\"subjectPlaceholder\":\"What is this about?\",\"namePlaceholder\":\"Your name\",\"message\":\"Message\",\"messagePlaceholder\":\"Tell us more...\",\"sendMessage\":\"Send Message\",\"sending\":\"Sending...\",\"messageSent\":\"Message sent!\",\"thankYou\":\"Thank you for reaching out. We'll get back to you within 1-2 business days.\",\"sendAnother\":\"Send another message\",\"emailDirectly\":\"Or email us directly at\",\"validationName\":\"Please enter your name.\",\"validationEmail\":\"Please enter a valid email address.\",\"validationMessage\":\"Please enter a message (at least 10 characters).\",\"networkError\":\"Network error. Please try again.\",\"genericError\":\"Something went wrong. Please try again.\"},\"languagePicker\":{\"label\":\"Language\"}}}],\"$L17\",\"$L18\"]\n"])</script><script>self.__next_f.push([1,"19:I[22016,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\",\"/_next/static/chunks/0immojv~8w4~6.js\"],\"\"]\n1a:I[5500,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\",\"/_next/static/chunks/0immojv~8w4~6.js\"],\"Image\"]\n17:[\"$\",\"main\",null,{\"style\":{\"minHeight\":\"60vh\",\"display\":\"flex\",\"alignItems\":\"center\",\"justifyContent\":\"center\",\"textAlign\":\"center\",\"padding\":\"80px 24px\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":11,\"fontWeight\":600,\"textTransform\":\"uppercase\",\"letterSpacing\":3,\"color\":\"var(--color-cool-gray)\",\"marginBottom\":16},\"children\":\"404 - Page Not Found\"}],[\"$\",\"h1\",null,{\"style\":{\"fontFamily\":\"var(--font-display)\",\"fontSize\":\"clamp(2rem, 4vw, 3rem)\",\"fontWeight\":400,\"color\":\"var(--color-forest-black)\",\"marginBottom\":16},\"children\":\"This page doesn't exist yet.\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":16,\"color\":\"var(--color-cool-gray)\",\"lineHeight\":1.7,\"maxWidth\":480,\"margin\":\"0 auto 32px\"},\"children\":\"The content you're looking for may be in development. Geodocs.dev is actively building the canonical knowledge base for GEO and AEO.\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"flex\",\"justifyContent\":\"center\",\"gap\":12},\"children\":[[\"$\",\"$L19\",null,{\"href\":\"/\",\"className\":\"btn btn-primary\",\"children\":\"Go home\"}],[\"$\",\"$L19\",null,{\"href\":\"/geo/what-is-geo\",\"className\":\"btn btn-outline\",\"children\":\"Start with GEO\"}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"18:[\"$\",\"footer\",null,{\"style\":{\"background\":\"var(--color-forest-black)\",\"borderTop\":\"1px solid var(--color-teal-gray)\",\"padding\":\"64px 24px 32px\"},\"children\":[[\"$\",\"div\",null,{\"style\":{\"maxWidth\":1200,\"margin\":\"0 auto\"},\"children\":[[\"$\",\"div\",null,{\"style\":{\"display\":\"grid\",\"gridTemplateColumns\":\"repeat(auto-fit, minmax(180px, 1fr))\",\"gap\":48,\"marginBottom\":48},\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"div\",null,{\"style\":{\"marginBottom\":16},\"children\":[\"$\",\"$L1a\",null,{\"src\":\"/geodocs-logo-dark.svg\",\"alt\":\"Geodocs.dev\",\"width\":140,\"height\":32,\"style\":{\"height\":24,\"width\":\"auto\"}}]}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":13,\"color\":\"var(--color-cool-gray)\",\"lineHeight\":1.6,\"maxWidth\":220},\"children\":\"Structured knowledge for AI search visibility. The canonical reference for GEO, AEO, and AI search optimization.\"}]]}],[[\"$\",\"div\",\"Learn\",{\"children\":[[\"$\",\"h4\",null,{\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":11,\"fontWeight\":600,\"textTransform\":\"uppercase\",\"letterSpacing\":2,\"color\":\"var(--color-mongodb-green)\",\"marginBottom\":16},\"children\":\"Learn\"}],[\"$\",\"ul\",null,{\"style\":{\"listStyle\":\"none\",\"display\":\"flex\",\"flexDirection\":\"column\",\"gap\":10},\"children\":[[\"$\",\"li\",\"/geo/what-is-geo\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/geo/what-is-geo\",\"className\":\"footer-link\",\"children\":\"What Is GEO?\"}]}],[\"$\",\"li\",\"/aeo/what-is-aeo\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/aeo/what-is-aeo\",\"className\":\"footer-link\",\"children\":\"What Is AEO?\"}]}],[\"$\",\"li\",\"/geo/geo-vs-seo\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/geo/geo-vs-seo\",\"className\":\"footer-link\",\"children\":\"GEO vs SEO\"}]}],[\"$\",\"li\",\"/reference/geo-aeo-glossary\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/reference/geo-aeo-glossary\",\"className\":\"footer-link\",\"children\":\"GEO Glossary\"}]}]]}]]}],[\"$\",\"div\",\"Build\",{\"children\":[[\"$\",\"h4\",null,{\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":11,\"fontWeight\":600,\"textTransform\":\"uppercase\",\"letterSpacing\":2,\"color\":\"var(--color-mongodb-green)\",\"marginBottom\":16},\"children\":\"Build\"}],[\"$\",\"ul\",null,{\"style\":{\"listStyle\":\"none\",\"display\":\"flex\",\"flexDirection\":\"column\",\"gap\":10},\"children\":[[\"$\",\"li\",\"/technical/llms-txt\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/technical/llms-txt\",\"className\":\"footer-link\",\"children\":\"llms.txt Reference\"}]}],[\"$\",\"li\",\"/technical/how-to-create-llms-txt\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/technical/how-to-create-llms-txt\",\"className\":\"footer-link\",\"children\":\"Create llms.txt\"}]}],[\"$\",\"li\",\"/technical/structured-data-for-ai-search\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/technical/structured-data-for-ai-search\",\"className\":\"footer-link\",\"children\":\"Structured Data\"}]}],[\"$\",\"li\",\"/technical/ai-txt\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/technical/ai-txt\",\"className\":\"footer-link\",\"children\":\"ai.txt Reference\"}]}]]}]]}],[\"$\",\"div\",\"Strategy\",{\"children\":[[\"$\",\"h4\",null,{\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":11,\"fontWeight\":600,\"textTransform\":\"uppercase\",\"letterSpacing\":2,\"color\":\"var(--color-mongodb-green)\",\"marginBottom\":16},\"children\":\"Strategy\"}],[\"$\",\"ul\",null,{\"style\":{\"listStyle\":\"none\",\"display\":\"flex\",\"flexDirection\":\"column\",\"gap\":10},\"children\":[[\"$\",\"li\",\"/strategy/ai-visibility-measurement\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/strategy/ai-visibility-measurement\",\"className\":\"footer-link\",\"children\":\"AI Visibility\"}]}],[\"$\",\"li\",\"/strategy/geo-content-strategy\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/strategy/geo-content-strategy\",\"className\":\"footer-link\",\"children\":\"Content Strategy\"}]}],[\"$\",\"li\",\"/strategy/geo-roi-framework\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/strategy/geo-roi-framework\",\"className\":\"footer-link\",\"children\":\"GEO ROI\"}]}],[\"$\",\"li\",\"/aeo/aeo-content-checklist\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/aeo/aeo-content-checklist\",\"className\":\"footer-link\",\"children\":\"AEO Checklist\"}]}]]}]]}],[\"$\",\"div\",\"Resources\",{\"children\":[[\"$\",\"h4\",null,{\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":11,\"fontWeight\":600,\"textTransform\":\"uppercase\",\"letterSpacing\":2,\"color\":\"var(--color-mongodb-green)\",\"marginBottom\":16},\"children\":\"Resources\"}],[\"$\",\"ul\",null,{\"style\":{\"listStyle\":\"none\",\"display\":\"flex\",\"flexDirection\":\"column\",\"gap\":10},\"children\":[[\"$\",\"li\",\"https://github.com/Geodocs-dev\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"https://github.com/Geodocs-dev\",\"className\":\"footer-link\",\"children\":\"GitHub\"}]}],[\"$\",\"li\",\"/contact\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/contact\",\"className\":\"footer-link\",\"children\":\"Contact\"}]}],[\"$\",\"li\",\"/tags\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/tags\",\"className\":\"footer-link\",\"children\":\"Tags\"}]}],[\"$\",\"li\",\"/sitemap.xml\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/sitemap.xml\",\"className\":\"footer-link\",\"children\":\"Sitemap\"}]}],\"$L1b\",\"$L1c\"]}]]}]]]}],\"$L1d\"]}],\"$L1e\"]}]\n"])</script><script>self.__next_f.push([1,"1b:[\"$\",\"li\",\"/llms.txt\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/llms.txt\",\"className\":\"footer-link\",\"children\":\"llms.txt\"}]}]\n1c:[\"$\",\"li\",\"/ai.txt\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/ai.txt\",\"className\":\"footer-link\",\"children\":\"ai.txt\"}]}]\n1d:[\"$\",\"div\",null,{\"style\":{\"borderTop\":\"1px solid var(--color-teal-gray)\",\"paddingTop\":24,\"display\":\"flex\",\"justifyContent\":\"space-between\",\"alignItems\":\"center\",\"flexWrap\":\"wrap\",\"gap\":16},\"children\":[[\"$\",\"p\",null,{\"style\":{\"fontSize\":12,\"color\":\"var(--color-cool-gray)\"},\"children\":[\"© \",2026,\" Geodocs.dev. \",\"All rights reserved.\"]}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":12,\"color\":\"var(--color-cool-gray)\"},\"children\":[[\"$\",\"a\",null,{\"href\":\"mailto:contact@geodocs.dev\",\"className\":\"footer-link\",\"children\":\"contact@geodocs.dev\"}],\" · \",\"Built for humans and AI agents.\"]}]]}]\n1e:[\"$\",\"style\",null,{\"children\":\"\\n .footer-link {\\n font-size: 13px;\\n color: var(--color-silver-teal);\\n text-decoration: none;\\n transition: color 0.2s ease;\\n }\\n .footer-link:hover {\\n color: var(--color-white);\\n }\\n \"}]\n"])</script><script>self.__next_f.push([1,"1f:I[43937,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\",\"/_next/static/chunks/0immojv~8w4~6.js\"],\"ArticleTracker\"]\n20:T4b1,{\"@context\":\"https://schema.org\",\"@type\":\"TechArticle\",\"mainEntityOfPage\":{\"@type\":\"WebPage\",\"@id\":\"https://geodocs.dev/technical/url-structure-ai-search-best-practices\"},\"headline\":\"URL Structure Best Practices for AI Search Citations\",\"description\":\"URL structure affects how AI engines parse, cite, and follow links. Best practices for slug length, depth, parameters, fragments, and stability.\",\"image\":\"https://geodocs.dev/geodocs-logo-dark.png\",\"url\":\"https://geodocs.dev/technical/url-structure-ai-search-best-practices\",\"author\":{\"@type\":\"Person\",\"name\":\"Geodocs Research Team\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Geodocs.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://geodocs.dev/geodocs-logo-dark.png\"}},\"datePublished\":\"2026-04-29\",\"dateModified\":\"2026-04-29\",\"keywords\":\"URL structure AI search, URL hygiene AI citations, slug best practices, URL parameters LLM, trailing slash AI search\",\"about\":[{\"@type\":\"Thing\",\"name\":\"URL structure\"},{\"@type\":\"Thing\",\"name\":\"Slug\"},{\"@type\":\"Thing\",\"name\":\"Canonical URL\"},{\"@type\":\"Thing\",\"name\":\"Fragment identifier\"},{\"@type\":\"Thing\",\"name\":\"Query parameter\"},{\"@type\":\"Thing\",\"name\":\"GPTBot\"},{\"@type\":\"Thing\",\"name\":\"PerplexityBot\"}]}21:T751,"])</script><script>self.__next_f.push([1,"{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Does the order of words in a slug matter for AI citations?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes, but less than for traditional SEO. AI engines tokenize slugs and match them against the canonical question; word order is one signal among many. Place the most identity-bearing word (the entity or canonical noun) first when possible.\"}},{\"@type\":\"Question\",\"name\":\"Should I use .html or no extension?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Modern AI engines treat both equivalently as long as the response is HTML and the canonical is correct. New sites should default to extensionless URLs for cleaner citations.\"}},{\"@type\":\"Question\",\"name\":\"Can I shorten URLs through a redirector for AI citations?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Avoid shortening on your own site. Redirector links (bit.ly, custom shorteners) appear less stable to AI engines and are sometimes downranked because they cannot be parsed for topical signal.\"}},{\"@type\":\"Question\",\"name\":\"Do trailing slashes really change citation share?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"In practice, yes — when AI engines see two URLs serve identical content, they pick one canonically. If you do not declare which, the choice is non-deterministic and citations split between variants. A site-wide 301 to your canonical convention solves this in a single deploy.\"}},{\"@type\":\"Question\",\"name\":\"How do fragment identifiers help LLMs cite my page more precisely?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Fragments let an AI engine cite a specific section rather than the whole page, which is strictly more useful to readers. Pages with stable section IDs earn more deep-link citations from Perplexity and Gemini Deep Research, where citations often target the most relevant section.\"}}]}"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"$L16\",null,{\"lang\":\"en\",\"dict\":\"$8:0:props:dict\"}],[[\"$\",\"main\",null,{\"style\":{\"minHeight\":\"70vh\"},\"children\":[[\"$\",\"$L1f\",null,{\"meta\":{\"slug\":\"url-structure-ai-search-best-practices\",\"section\":\"technical\",\"content_type\":\"guide\",\"difficulty\":\"intermediate\",\"primary_audience\":\"developer\",\"secondary_audiences\":[\"seo-specialist\",\"content-strategist\"],\"word_count\":1401,\"reading_time_min\":8,\"has_code_snippet\":false,\"has_table\":true,\"citation_readiness\":\"reviewed\",\"series\":\"ai-search-technical-fundamentals\",\"series_order\":5}}],[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$20\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"BreadcrumbList\\\",\\\"itemListElement\\\":[{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":1,\\\"name\\\":\\\"Home\\\",\\\"item\\\":\\\"https://geodocs.dev\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":2,\\\"name\\\":\\\"TECHNICAL\\\",\\\"item\\\":\\\"https://geodocs.dev/technical\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":3,\\\"name\\\":\\\"URL Structure Best Practices for AI Search Citations\\\",\\\"item\\\":\\\"https://geodocs.dev/technical/url-structure-ai-search-best-practices\\\"}]}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$21\"}}],\"$L22\",\"$L23\"]]}],\"$L24\"],\"$L25\"]\n"])</script><script>self.__next_f.push([1,"26:I[23150,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\",\"/_next/static/chunks/0immojv~8w4~6.js\"],\"ShareButtons\"]\n27:I[47654,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\",\"/_next/static/chunks/0immojv~8w4~6.js\"],\"ExploreWithAI\"]\n2b:I[11181,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\",\"/_next/static/chunks/0immojv~8w4~6.js\"],\"Newsletter\"]\n28:T28e3,"])</script><script>self.__next_f.push([1,"\u003cdiv class=\"ai-summary\"\u003e\u003cp\u003eAI engines treat URLs as citation identifiers, not just retrieval pointers. Short kebab-case slugs, shallow depth, canonical handling of query parameters, consistent trailing slashes, and stable fragment IDs all increase the odds your URL is the one cited — and the one followed when a user clicks an AI-generated answer.\u003c/p\u003e\u003c/div\u003e\n\u003ch2 id=\"tl-dr\"\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003eUse short kebab-case slugs (3-5 words), keep paths at 2-3 levels deep, declare a canonical for any URL with marketing or tracking parameters, pick one trailing-slash convention and enforce it with 301s, reserve #fragment for in-page jumps (not for distinct content), and never break a URL after publication. AI engines deduplicate and rank URLs differently than Google's blue links — Ahrefs found AI Mode and AI Overviews cite the same URL only ~13.7% of the time across overlapping queries (Search Engine Journal, 2025). URL stability is what makes a citation portable across engines.\u003c/p\u003e\n\u003ch2 id=\"why-url-structure-matters-for-ai-citations\"\u003eWhy URL structure matters for AI citations\u003c/h2\u003e\n\u003cp\u003eA URL is the citation. When ChatGPT, Perplexity, Gemini, or Google AI Overviews attach a source to an answer, the URL is what readers click and what other AI engines cross-reference. Three properties drive citation behaviour:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eParsability. AI engines extract structure from the URL itself — domain, section, slug — to determine topical category and freshness signals.\u003c/li\u003e\n\u003cli\u003eStability. Citations depreciate when URLs change. Engines re-crawl on different cadences; a URL that 301's mid-cycle can drop from one engine while still appearing in another.\u003c/li\u003e\n\u003cli\u003eDeduplication. Engines collapse near-duplicates (with/without trailing slash, with/without ?ref=...) into a single canonical citation. The canonical you declare is the one they cite.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eIndependent analyses show AI engines do not simply re-rank Google: only ~12% of AI-cited URLs appear in Google's top 10 organic for the same query (ZipTie, 2026). Retrieval is its own pipeline, and clean URLs help your page survive every stage of it.\u003c/p\u003e\n\u003ch2 id=\"slug-design\"\u003eSlug design\u003c/h2\u003e\n\u003cp\u003eThe slug is the most-extracted segment of the URL. Best practice for AI search:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLength: 3-5 meaningful words. Long enough to disambiguate, short enough to stay under ~60-70 characters total URL length.\u003c/li\u003e\n\u003cli\u003eFormat: kebab-case lowercase. Hyphens separate words; no underscores, no camelCase, no spaces. Search engines have treated hyphens as word boundaries since 2007, and AI engines follow the same convention.\u003c/li\u003e\n\u003cli\u003eWords: nouns and entity names. Match the canonical question or the canonical entity. Drop stopwords (\"the\", \"a\", \"for\") unless they are part of an entity name.\u003c/li\u003e\n\u003cli\u003eNo dates unless the page is dated. /2024-q4-roadmap is fine; /2024-best-crm is a maintenance trap.\u003c/li\u003e\n\u003cli\u003eNo category numbers. Pick stable terms; numeric IDs are opaque.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"table-responsive\"\u003e\u003ctable\u003e\u003cthead\u003e\u003ctr\u003e\u003cth\u003eBad slug\u003c/th\u003e\u003cth\u003eBetter slug\u003c/th\u003e\u003c/tr\u003e\u003c/thead\u003e\u003ctbody\u003e\u003ctr\u003e\u003ctd\u003e/post?id=12345\u003c/td\u003e\u003ctd\u003e/url-structure-ai-search-best-practices\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e/2025BestCRM_Tools\u003c/td\u003e\u003ctd\u003e/best-crm-tools\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e/articles/what-is-the-difference-between-rss-and-atom\u003c/td\u003e\u003ctd\u003e/rss-vs-atom\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e/blog/this-is-our-new-feature-launch\u003c/td\u003e\u003ctd\u003e/feature-launch-q3-2026\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e\u003c/div\u003e\n\u003ch2 id=\"depth-and-hierarchy\"\u003eDepth and hierarchy\u003c/h2\u003e\n\u003cp\u003eTwo to three path segments is the sweet spot:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2 segments for top-level concepts: /technical/structured-data-for-ai-search.\u003c/li\u003e\n\u003cli\u003e3 segments for sub-topics or series: /case-studies/saas/atlassian-aeo-rollout.\u003c/li\u003e\n\u003cli\u003e4+ segments signal \"deep archive\" to AI engines and rank lower in retrieval.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMap each path segment to a hub: /technical/ is itself a citable page; /technical/structured-data-for-ai-search is a spoke that links back. AI engines that crawl the hub gain context for siblings — useful when one query fan-out branches into adjacent sub-queries.\u003c/p\u003e\n\u003ch2 id=\"query-parameters\"\u003eQuery parameters\u003c/h2\u003e\n\u003cp\u003eLLMs and AI crawlers handle parameters inconsistently. Single Grain's analysis describes the practical pattern: tracking parameters (?utm_source=...) are usually stripped, but functional ones (?lang=en, ?page=2) are preserved (Single Grain, 2026). Two rules:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eDeclare a canonical with \u003clink rel=\"canonical\"\u003e for every variant. The canonical is what AI engines cite, regardless of which variant the user clicked.\u003c/li\u003e\n\u003cli\u003eUse parameters only for state, not content. /products?id=42 is fragile; /products/42-widget-pro is citable. Reserve query strings for filters, sort orders, and tracking — never for core content identity.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003ePages that accept arbitrary parameters (search results, faceted listings) should noindex parameter combinations and surface a small set of curated landing pages for AI engines to cite.\u003c/p\u003e\n\u003ch2 id=\"trailing-slashes\"\u003eTrailing slashes\u003c/h2\u003e\n\u003cp\u003ePick one and enforce it. Both https://example.com/page and https://example.com/page/ resolve, but if both serve the same content with no canonical, AI engines may cite either form, splitting citation share. Conventions:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTrailing slash for \"section\" or \"directory\" routes (/technical/).\u003c/li\u003e\n\u003cli\u003eNo trailing slash for \"leaf\" content (/technical/url-structure-ai-search-best-practices).\u003c/li\u003e\n\u003cli\u003e301 the non-canonical variant so crawlers consolidate.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhichever convention you pick, apply it consistently and serve a 301 (not 302) for the alternate form.\u003c/p\u003e\n\u003ch2 id=\"fragment-identifiers\"\u003eFragment identifiers\u003c/h2\u003e\n\u003cp\u003eThe #section portion of a URL is invisible to most server-side analytics but very visible to AI engines, which use anchors for citation precision. Patterns to follow:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd id attributes to H2 and H3 headings so the URL /page#how-it-works jumps to a specific section.\u003c/li\u003e\n\u003cli\u003eUse stable, semantic IDs. #how-it-works is good; #section-3 is fragile.\u003c/li\u003e\n\u003cli\u003eDo not route content via fragment. Single-page apps that load distinct content based on #/route are invisible to most AI crawlers; render the same content at a real URL.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhen AI engines cite a long-form article, they often cite the URL with a fragment to a specific section. If your IDs are stable, the citation lands the reader on the right paragraph; if you renumber, citations break silently.\u003c/p\u003e\n\u003ch2 id=\"url-stability-rules\"\u003eURL stability rules\u003c/h2\u003e\n\u003cp\u003eOnce published, a URL should never change without a redirect plan. Practical guardrails:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eTreat the URL as identity. If the title changes, do not re-slug. AI engines that have already cached the URL will keep citing it.\u003c/li\u003e\n\u003cli\u003e301 every move. Keep the redirect alive indefinitely; AI crawlers re-validate citations on long cadences (weeks to months).\u003c/li\u003e\n\u003cli\u003eAvoid redirect chains. AI crawlers commonly abandon chains beyond two hops.\u003c/li\u003e\n\u003cli\u003eWatch for accidental 404s. A returned 404 on a previously cited URL often translates into the citation being dropped at the next crawl.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"idn-and-non-ascii-characters\"\u003eIDN and non-ASCII characters\u003c/h2\u003e\n\u003cp\u003eInternationalized Domain Names (IDN) and non-ASCII slug characters work but introduce risk:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePunycode-encode the domain at the registrar level (xn--...).\u003c/li\u003e\n\u003cli\u003ePercent-encode non-ASCII slug characters for portability.\u003c/li\u003e\n\u003cli\u003eFor multi-language sites, prefer subdirectories (/de/ rather than IDN domains) plus hreflang for AI engines that respect it.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"common-mistakes-that-hurt-ai-citations\"\u003eCommon mistakes that hurt AI citations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInconsistent trailing slashes split citation share between two near-duplicates.\u003c/li\u003e\n\u003cli\u003eMarketing-tracking parameters in the canonical link, fragmenting citation telemetry.\u003c/li\u003e\n\u003cli\u003eGeneric slugs like /post-1234 that strip topical signal.\u003c/li\u003e\n\u003cli\u003eRenumbered fragment IDs that silently break long-tail citations.\u003c/li\u003e\n\u003cli\u003eMulti-hop redirect chains that AI crawlers abandon.\u003c/li\u003e\n\u003cli\u003eFragment-based routing on SPAs that hides content from AI bots.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"how-to-audit-your-urls\"\u003eHow to audit your URLs\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eCrawl the site with Screaming Frog or Sitebulb and export every URL with status code, canonical, and \u003ctitle\u003e.\u003c/li\u003e\n\u003cli\u003eFilter for parameters, multiple trailing-slash variants, and 4+ depth.\u003c/li\u003e\n\u003cli\u003eSpot-check 20 of your most-cited URLs in ChatGPT, Perplexity, and AI Mode; confirm the same URL appears in each.\u003c/li\u003e\n\u003cli\u003ePatch redirect chains, declare canonicals, and add stable id attributes to headings.\u003c/li\u003e\n\u003cli\u003eRe-run the citation panel in 30 days.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"faq\"\u003eFAQ\u003c/h2\u003e\n\u003ch3 id=\"q-does-the-order-of-words-in-a-slug-matter-for-ai-citations\"\u003eQ: Does the order of words in a slug matter for AI citations?\u003c/h3\u003e\n\u003cp\u003eYes, but less than for traditional SEO. AI engines tokenize slugs and match them against the canonical question; word order is one signal among many. Place the most identity-bearing word (the entity or canonical noun) first when possible.\u003c/p\u003e\n\u003ch3 id=\"q-should-i-use-html-or-no-extension\"\u003eQ: Should I use .html or no extension?\u003c/h3\u003e\n\u003cp\u003eModern AI engines treat both equivalently as long as the response is HTML and the canonical is correct. New sites should default to extensionless URLs for cleaner citations.\u003c/p\u003e\n\u003ch3 id=\"q-can-i-shorten-urls-through-a-redirector-for-ai-citations\"\u003eQ: Can I shorten URLs through a redirector for AI citations?\u003c/h3\u003e\n\u003cp\u003eAvoid shortening on your own site. Redirector links (bit.ly, custom shorteners) appear less stable to AI engines and are sometimes downranked because they cannot be parsed for topical signal.\u003c/p\u003e\n\u003ch3 id=\"q-do-trailing-slashes-really-change-citation-share\"\u003eQ: Do trailing slashes really change citation share?\u003c/h3\u003e\n\u003cp\u003eIn practice, yes — when AI engines see two URLs serve identical content, they pick one canonically. If you do not declare which, the choice is non-deterministic and citations split between variants. A site-wide 301 to your canonical convention solves this in a single deploy.\u003c/p\u003e\n\u003ch3 id=\"q-how-do-fragment-identifiers-help-llms-cite-my-page-more-precisely\"\u003eQ: How do fragment identifiers help LLMs cite my page more precisely?\u003c/h3\u003e\n\u003cp\u003eFragments let an AI engine cite a specific section rather than the whole page, which is strictly more useful to readers. Pages with stable section IDs earn more deep-link citations from Perplexity and Gemini Deep Research, where citations often target the most relevant section.\u003c/p\u003e"])</script><script>self.__next_f.push([1,"22:[\"$\",\"div\",null,{\"style\":{\"display\":\"grid\",\"gridTemplateColumns\":\"1fr min(var(--content-max-width), 100%) 1fr\",\"gap\":0,\"maxWidth\":1200,\"margin\":\"0 auto\",\"padding\":\"48px 24px 80px\"},\"children\":[[\"$\",\"div\",null,{}],[\"$\",\"article\",null,{\"children\":[[\"$\",\"h1\",null,{\"style\":{\"fontFamily\":\"var(--font-display)\",\"fontSize\":\"clamp(1.75rem, 4vw, 2.5rem)\",\"fontWeight\":400,\"lineHeight\":1.2,\"color\":\"var(--text-heading)\",\"marginBottom\":16},\"children\":\"URL Structure Best Practices for AI Search Citations\"}],[\"$\",\"div\",null,{\"className\":\"metadata-bar\",\"style\":{\"marginBottom\":24},\"children\":[[\"$\",\"span\",null,{\"className\":\"metadata-bar__tag metadata-bar__tag--section\",\"children\":\"technical\"}],[\"$\",\"span\",null,{\"className\":\"metadata-bar__tag\",\"children\":\"guide\"}],[\"$\",\"span\",null,{\"className\":\"metadata-bar__tag\",\"children\":\"intermediate\"}],[\"$\",\"span\",null,{\"className\":\"metadata-bar__dot\"}],[\"$\",\"span\",null,{\"children\":[8,\" min read\"]}],[\"$\",\"span\",null,{\"className\":\"metadata-bar__dot\"}],[\"$\",\"span\",null,{\"children\":[\"1,401\",\" words\"]}],[[\"$\",\"span\",null,{\"className\":\"metadata-bar__dot\"}],[\"$\",\"span\",null,{\"children\":[\"Updated\",\" \",\"Apr 2026\"]}]]]}],[\"$\",\"$L26\",null,{\"title\":\"URL Structure Best Practices for AI Search Citations\",\"url\":\"https://geodocs.dev/technical/url-structure-ai-search-best-practices\"}],[\"$\",\"$L27\",null,{\"title\":\"URL Structure Best Practices for AI Search Citations\",\"url\":\"https://geodocs.dev/technical/url-structure-ai-search-best-practices\",\"section\":\"technical\",\"slug\":\"url-structure-ai-search-best-practices\"}],[\"$\",\"div\",null,{\"className\":\"prose\",\"dangerouslySetInnerHTML\":{\"__html\":\"$28\"}}],\"$L29\",false]}],\"$L2a\"]}]\n"])</script><script>self.__next_f.push([1,"23:[\"$\",\"style\",null,{\"children\":\"\\n @media (max-width: 1024px) {\\n .toc-sidebar { display: none !important; }\\n }\\n @media (min-width: 1025px) {\\n article {\\n /* override grid for 3-col with TOC */\\n }\\n }\\n .article-tag-link:hover {\\n border-color: var(--color-dark-green) !important;\\n color: var(--text-primary) !important;\\n background: rgba(0, 237, 100, 0.06) !important;\\n }\\n \"}]\n24:[\"$\",\"$L2b\",null,{\"dict\":\"$8:0:props:dict:newsletter\"}]\n"])</script><script>self.__next_f.push([1,"25:[\"$\",\"footer\",null,{\"style\":{\"background\":\"var(--color-forest-black)\",\"borderTop\":\"1px solid var(--color-teal-gray)\",\"padding\":\"64px 24px 32px\"},\"children\":[[\"$\",\"div\",null,{\"style\":{\"maxWidth\":1200,\"margin\":\"0 auto\"},\"children\":[[\"$\",\"div\",null,{\"style\":{\"display\":\"grid\",\"gridTemplateColumns\":\"repeat(auto-fit, minmax(180px, 1fr))\",\"gap\":48,\"marginBottom\":48},\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"div\",null,{\"style\":{\"marginBottom\":16},\"children\":[\"$\",\"$L1a\",null,{\"src\":\"/geodocs-logo-dark.svg\",\"alt\":\"Geodocs.dev\",\"width\":140,\"height\":32,\"style\":{\"height\":24,\"width\":\"auto\"}}]}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":13,\"color\":\"var(--color-cool-gray)\",\"lineHeight\":1.6,\"maxWidth\":220},\"children\":\"Structured knowledge for AI search visibility. The canonical reference for GEO, AEO, and AI search optimization.\"}]]}],[[\"$\",\"div\",\"Learn\",{\"children\":[[\"$\",\"h4\",null,{\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":11,\"fontWeight\":600,\"textTransform\":\"uppercase\",\"letterSpacing\":2,\"color\":\"var(--color-mongodb-green)\",\"marginBottom\":16},\"children\":\"Learn\"}],[\"$\",\"ul\",null,{\"style\":{\"listStyle\":\"none\",\"display\":\"flex\",\"flexDirection\":\"column\",\"gap\":10},\"children\":[[\"$\",\"li\",\"/geo/what-is-geo\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/geo/what-is-geo\",\"className\":\"footer-link\",\"children\":\"What Is GEO?\"}]}],[\"$\",\"li\",\"/aeo/what-is-aeo\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/aeo/what-is-aeo\",\"className\":\"footer-link\",\"children\":\"What Is AEO?\"}]}],[\"$\",\"li\",\"/geo/geo-vs-seo\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/geo/geo-vs-seo\",\"className\":\"footer-link\",\"children\":\"GEO vs SEO\"}]}],[\"$\",\"li\",\"/reference/geo-aeo-glossary\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/reference/geo-aeo-glossary\",\"className\":\"footer-link\",\"children\":\"GEO Glossary\"}]}]]}]]}],[\"$\",\"div\",\"Build\",{\"children\":[[\"$\",\"h4\",null,{\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":11,\"fontWeight\":600,\"textTransform\":\"uppercase\",\"letterSpacing\":2,\"color\":\"var(--color-mongodb-green)\",\"marginBottom\":16},\"children\":\"Build\"}],[\"$\",\"ul\",null,{\"style\":{\"listStyle\":\"none\",\"display\":\"flex\",\"flexDirection\":\"column\",\"gap\":10},\"children\":[[\"$\",\"li\",\"/technical/llms-txt\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/technical/llms-txt\",\"className\":\"footer-link\",\"children\":\"llms.txt Reference\"}]}],[\"$\",\"li\",\"/technical/how-to-create-llms-txt\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/technical/how-to-create-llms-txt\",\"className\":\"footer-link\",\"children\":\"Create llms.txt\"}]}],[\"$\",\"li\",\"/technical/structured-data-for-ai-search\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/technical/structured-data-for-ai-search\",\"className\":\"footer-link\",\"children\":\"Structured Data\"}]}],[\"$\",\"li\",\"/technical/ai-txt\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/technical/ai-txt\",\"className\":\"footer-link\",\"children\":\"ai.txt Reference\"}]}]]}]]}],[\"$\",\"div\",\"Strategy\",{\"children\":[[\"$\",\"h4\",null,{\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":11,\"fontWeight\":600,\"textTransform\":\"uppercase\",\"letterSpacing\":2,\"color\":\"var(--color-mongodb-green)\",\"marginBottom\":16},\"children\":\"Strategy\"}],[\"$\",\"ul\",null,{\"style\":{\"listStyle\":\"none\",\"display\":\"flex\",\"flexDirection\":\"column\",\"gap\":10},\"children\":[[\"$\",\"li\",\"/strategy/ai-visibility-measurement\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/strategy/ai-visibility-measurement\",\"className\":\"footer-link\",\"children\":\"AI Visibility\"}]}],[\"$\",\"li\",\"/strategy/geo-content-strategy\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/strategy/geo-content-strategy\",\"className\":\"footer-link\",\"children\":\"Content Strategy\"}]}],[\"$\",\"li\",\"/strategy/geo-roi-framework\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/strategy/geo-roi-framework\",\"className\":\"footer-link\",\"children\":\"GEO ROI\"}]}],[\"$\",\"li\",\"/aeo/aeo-content-checklist\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/aeo/aeo-content-checklist\",\"className\":\"footer-link\",\"children\":\"AEO Checklist\"}]}]]}]]}],[\"$\",\"div\",\"Resources\",{\"children\":[[\"$\",\"h4\",null,{\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":11,\"fontWeight\":600,\"textTransform\":\"uppercase\",\"letterSpacing\":2,\"color\":\"var(--color-mongodb-green)\",\"marginBottom\":16},\"children\":\"Resources\"}],[\"$\",\"ul\",null,{\"style\":{\"listStyle\":\"none\",\"display\":\"flex\",\"flexDirection\":\"column\",\"gap\":10},\"children\":[[\"$\",\"li\",\"https://github.com/Geodocs-dev\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"https://github.com/Geodocs-dev\",\"className\":\"footer-link\",\"children\":\"GitHub\"}]}],[\"$\",\"li\",\"/contact\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/contact\",\"className\":\"footer-link\",\"children\":\"Contact\"}]}],[\"$\",\"li\",\"/tags\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/tags\",\"className\":\"footer-link\",\"children\":\"Tags\"}]}],[\"$\",\"li\",\"/sitemap.xml\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/sitemap.xml\",\"className\":\"footer-link\",\"children\":\"Sitemap\"}]}],\"$L2c\",\"$L2d\"]}]]}]]]}],\"$L2e\"]}],\"$L2f\"]}]\n"])</script><script>self.__next_f.push([1,"29:[\"$\",\"div\",null,{\"style\":{\"marginTop\":64},\"children\":[[\"$\",\"h2\",null,{\"style\":{\"fontSize\":18,\"fontWeight\":600,\"marginBottom\":16,\"paddingBottom\":8,\"borderBottom\":\"1px solid var(--border-default)\"},\"children\":\"Related Articles\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"grid\",\"gridTemplateColumns\":\"repeat(auto-fill, minmax(280px, 1fr))\",\"gap\":16},\"children\":[[\"$\",\"$L19\",\"404-page-ai-crawler-handling\",{\"href\":\"/technical/404-page-ai-crawler-handling\",\"style\":{\"textDecoration\":\"none\"},\"data-related-article\":\"404-page-ai-crawler-handling\",\"data-related-position\":1,\"children\":[\"$\",\"div\",null,{\"className\":\"card\",\"children\":[[\"$\",\"span\",null,{\"className\":\"badge badge-green\",\"style\":{\"marginBottom\":8},\"children\":\"guide\"}],[\"$\",\"h3\",null,{\"style\":{\"fontSize\":15,\"fontWeight\":600,\"color\":\"var(--text-heading)\",\"marginBottom\":4},\"children\":\"404 Page AI Crawler Handling: Avoiding Citation Loss During Migrations\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":13,\"color\":\"var(--text-secondary)\",\"lineHeight\":1.5},\"children\":\"Migration playbook for keeping AI citations during URL changes — hard 404 vs soft 404, 410 Gone, redirect chains, sitemap cleanup, and refetch monitoring.\"}]]}]}],[\"$\",\"$L19\",\"accept-encoding-for-ai-crawlers\",{\"href\":\"/technical/accept-encoding-for-ai-crawlers\",\"style\":{\"textDecoration\":\"none\"},\"data-related-article\":\"accept-encoding-for-ai-crawlers\",\"data-related-position\":2,\"children\":[\"$\",\"div\",null,{\"className\":\"card\",\"children\":[[\"$\",\"span\",null,{\"className\":\"badge badge-green\",\"style\":{\"marginBottom\":8},\"children\":\"specification\"}],[\"$\",\"h3\",null,{\"style\":{\"fontSize\":15,\"fontWeight\":600,\"color\":\"var(--text-heading)\",\"marginBottom\":4},\"children\":\"Accept-Encoding (Brotli, Gzip) for AI Crawlers\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":13,\"color\":\"var(--text-secondary)\",\"lineHeight\":1.5},\"children\":\"Specification for serving Brotli, gzip, and zstd to AI crawlers via Accept-Encoding negotiation: which bots support which codecs, fallback rules, and Vary handling.\"}]]}]}],[\"$\",\"$L19\",\"accept-language-and-ai-language-detection\",{\"href\":\"/technical/accept-language-and-ai-language-detection\",\"style\":{\"textDecoration\":\"none\"},\"data-related-article\":\"accept-language-and-ai-language-detection\",\"data-related-position\":3,\"children\":[\"$\",\"div\",null,{\"className\":\"card\",\"children\":[[\"$\",\"span\",null,{\"className\":\"badge badge-green\",\"style\":{\"marginBottom\":8},\"children\":\"specification\"}],[\"$\",\"h3\",null,{\"style\":{\"fontSize\":15,\"fontWeight\":600,\"color\":\"var(--text-heading)\",\"marginBottom\":4},\"children\":\"Accept-Language and AI Language Detection\"}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":13,\"color\":\"var(--text-secondary)\",\"lineHeight\":1.5},\"children\":\"Specification for Accept-Language negotiation and html lang attribution that lets AI crawlers detect locale correctly without cross-locale citation leaks.\"}]]}]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"2a:[\"$\",\"div\",null,{\"style\":{\"paddingLeft\":40},\"className\":\"toc-sidebar\",\"children\":[\"$\",\"nav\",null,{\"style\":{\"position\":\"sticky\",\"top\":88,\"fontSize\":13,\"lineHeight\":1.6,\"maxHeight\":\"calc(100vh - 100px)\",\"overflowY\":\"auto\"},\"children\":[[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"var(--font-mono)\",\"fontSize\":10,\"fontWeight\":600,\"textTransform\":\"uppercase\",\"letterSpacing\":2,\"color\":\"var(--color-cool-gray)\",\"marginBottom\":12},\"children\":\"On this page\"}],[[\"$\",\"a\",\"tl-dr\",{\"href\":\"#tl-dr\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":0,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"none\"},\"children\":\"TL;DR\"}],[\"$\",\"a\",\"why-url-structure-matters-for-ai-citations\",{\"href\":\"#why-url-structure-matters-for-ai-citations\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":0,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"none\"},\"children\":\"Why URL structure matters for AI citations\"}],[\"$\",\"a\",\"slug-design\",{\"href\":\"#slug-design\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":0,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"none\"},\"children\":\"Slug design\"}],[\"$\",\"a\",\"depth-and-hierarchy\",{\"href\":\"#depth-and-hierarchy\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":0,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"none\"},\"children\":\"Depth and hierarchy\"}],[\"$\",\"a\",\"query-parameters\",{\"href\":\"#query-parameters\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":0,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"none\"},\"children\":\"Query parameters\"}],[\"$\",\"a\",\"trailing-slashes\",{\"href\":\"#trailing-slashes\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":0,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"none\"},\"children\":\"Trailing slashes\"}],[\"$\",\"a\",\"fragment-identifiers\",{\"href\":\"#fragment-identifiers\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":0,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"none\"},\"children\":\"Fragment identifiers\"}],[\"$\",\"a\",\"url-stability-rules\",{\"href\":\"#url-stability-rules\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":0,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"none\"},\"children\":\"URL stability rules\"}],[\"$\",\"a\",\"idn-and-non-ascii-characters\",{\"href\":\"#idn-and-non-ascii-characters\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":0,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"none\"},\"children\":\"IDN and non-ASCII characters\"}],[\"$\",\"a\",\"common-mistakes-that-hurt-ai-citations\",{\"href\":\"#common-mistakes-that-hurt-ai-citations\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":0,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"none\"},\"children\":\"Common mistakes that hurt AI citations\"}],[\"$\",\"a\",\"how-to-audit-your-urls\",{\"href\":\"#how-to-audit-your-urls\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":0,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"none\"},\"children\":\"How to audit your URLs\"}],[\"$\",\"a\",\"faq\",{\"href\":\"#faq\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":0,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"none\"},\"children\":\"FAQ\"}],[\"$\",\"a\",\"q-does-the-order-of-words-in-a-slug-matter-for-ai-citations\",{\"href\":\"#q-does-the-order-of-words-in-a-slug-matter-for-ai-citations\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":16,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"1px solid var(--border-default)\"},\"children\":\"Q: Does the order of words in a slug matter for AI citations?\"}],[\"$\",\"a\",\"q-should-i-use-html-or-no-extension\",{\"href\":\"#q-should-i-use-html-or-no-extension\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":16,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"1px solid var(--border-default)\"},\"children\":\"Q: Should I use .html or no extension?\"}],\"$L30\",\"$L31\",\"$L32\"]]}]}]\n"])</script><script>self.__next_f.push([1,"2c:[\"$\",\"li\",\"/llms.txt\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/llms.txt\",\"className\":\"footer-link\",\"children\":\"llms.txt\"}]}]\n2d:[\"$\",\"li\",\"/ai.txt\",{\"children\":[\"$\",\"$L19\",null,{\"href\":\"/ai.txt\",\"className\":\"footer-link\",\"children\":\"ai.txt\"}]}]\n2e:[\"$\",\"div\",null,{\"style\":{\"borderTop\":\"1px solid var(--color-teal-gray)\",\"paddingTop\":24,\"display\":\"flex\",\"justifyContent\":\"space-between\",\"alignItems\":\"center\",\"flexWrap\":\"wrap\",\"gap\":16},\"children\":[[\"$\",\"p\",null,{\"style\":{\"fontSize\":12,\"color\":\"var(--color-cool-gray)\"},\"children\":[\"© \",2026,\" Geodocs.dev. \",\"All rights reserved.\"]}],[\"$\",\"p\",null,{\"style\":{\"fontSize\":12,\"color\":\"var(--color-cool-gray)\"},\"children\":[[\"$\",\"a\",null,{\"href\":\"mailto:contact@geodocs.dev\",\"className\":\"footer-link\",\"children\":\"contact@geodocs.dev\"}],\" · \",\"Built for humans and AI agents.\"]}]]}]\n2f:[\"$\",\"style\",null,{\"children\":\"\\n .footer-link {\\n font-size: 13px;\\n color: var(--color-silver-teal);\\n text-decoration: none;\\n transition: color 0.2s ease;\\n }\\n .footer-link:hover {\\n color: var(--color-white);\\n }\\n \"}]\n"])</script><script>self.__next_f.push([1,"30:[\"$\",\"a\",\"q-can-i-shorten-urls-through-a-redirector-for-ai-citations\",{\"href\":\"#q-can-i-shorten-urls-through-a-redirector-for-ai-citations\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":16,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"1px solid var(--border-default)\"},\"children\":\"Q: Can I shorten URLs through a redirector for AI citations?\"}]\n31:[\"$\",\"a\",\"q-do-trailing-slashes-really-change-citation-share\",{\"href\":\"#q-do-trailing-slashes-really-change-citation-share\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":16,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"1px solid var(--border-default)\"},\"children\":\"Q: Do trailing slashes really change citation share?\"}]\n32:[\"$\",\"a\",\"q-how-do-fragment-identifiers-help-llms-cite-my-page-more-precisely\",{\"href\":\"#q-how-do-fragment-identifiers-help-llms-cite-my-page-more-precisely\",\"style\":{\"display\":\"block\",\"padding\":\"4px 0\",\"paddingLeft\":16,\"color\":\"var(--text-secondary)\",\"textDecoration\":\"none\",\"transition\":\"color 0.15s ease\",\"borderLeft\":\"1px solid var(--border-default)\"},\"children\":\"Q: How do fragment identifiers help LLMs cite my page more precisely?\"}]\n"])</script><script>self.__next_f.push([1,"11:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"33:I[27201,[\"/_next/static/chunks/0ld4q8u-25eux.js\",\"/_next/static/chunks/0d3shmwh5_nmn.js\",\"/_next/static/chunks/0xf6s51ok42m_.js\",\"/_next/static/chunks/148t.fhegq9f1.js\",\"/_next/static/chunks/05cra..ka3fzk.js\"],\"IconMark\"]\ne:null\n"])</script><script>self.__next_f.push([1,"13:[[\"$\",\"title\",\"0\",{\"children\":\"URL Structure Best Practices for AI Search Citations | Geodocs.dev\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"URL structure affects how AI engines parse, cite, and follow links. Best practices for slug length, depth, parameters, fragments, and stability.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"keywords\",\"content\":\"URL structure AI search,URL hygiene AI citations,slug best practices,URL parameters LLM,trailing slash AI search\"}],[\"$\",\"link\",\"3\",{\"rel\":\"canonical\",\"href\":\"https://geodocs.dev/technical/url-structure-ai-search-best-practices\"}],[\"$\",\"link\",\"4\",{\"rel\":\"alternate\",\"hrefLang\":\"en\",\"href\":\"https://geodocs.dev/technical/url-structure-ai-search-best-practices\"}],[\"$\",\"link\",\"5\",{\"rel\":\"alternate\",\"hrefLang\":\"x-default\",\"href\":\"https://geodocs.dev/technical/url-structure-ai-search-best-practices\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:title\",\"content\":\"URL Structure Best Practices for AI Search Citations\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:description\",\"content\":\"URL structure affects how AI engines parse, cite, and follow links. Best practices for slug length, depth, parameters, fragments, and stability.\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:type\",\"content\":\"article\"}],[\"$\",\"meta\",\"9\",{\"property\":\"article:published_time\",\"content\":\"2026-04-29\"}],[\"$\",\"meta\",\"10\",{\"property\":\"article:modified_time\",\"content\":\"2026-04-29\"}],[\"$\",\"meta\",\"11\",{\"property\":\"article:author\",\"content\":\"Geodocs Research Team\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:title\",\"content\":\"URL Structure Best Practices for AI Search Citations\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:description\",\"content\":\"URL structure affects how AI engines parse, cite, and follow links. Best practices for slug length, depth, parameters, fragments, and stability.\"}],[\"$\",\"link\",\"15\",{\"rel\":\"shortcut icon\",\"href\":\"/favicon.ico\"}],[\"$\",\"link\",\"16\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0zl.ysuv3a32n.ico\",\"sizes\":\"48x48\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"17\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\"}],[\"$\",\"link\",\"18\",{\"rel\":\"apple-touch-icon\",\"href\":\"/favicon.ico\"}],[\"$\",\"$L33\",\"19\",{}]]\n"])</script></body></html>