[{"data":1,"prerenderedAt":310},["ShallowReactive",2],{"seo-audit-navigation":3,"mdc-o8y00b-key":46,"seo-audit-version":88,"\u002Fdocs\u002Fseo-audit\u002Fguide\u002Fpreview-url":91,"\u002Fdocs\u002Fseo-audit\u002Fguide\u002Fpreview-url-surround":305},[4,15,29],{"title":5,"path":6,"stem":7,"children":8},"Getting Started","\u002Fdocs\u002Fseo-audit\u002Fgetting-started","1.docs\u002F3.seo-audit\u002F1.getting-started\u002F1.index",[9,11],{"title":10,"path":6,"stem":7},"Introduction",{"title":12,"path":13,"stem":14},"Installation","\u002Fdocs\u002Fseo-audit\u002Fgetting-started\u002Finstallation","1.docs\u002F3.seo-audit\u002F1.getting-started\u002F2.installation",{"title":16,"path":17,"stem":18,"children":19,"page":28},"Configuration","\u002Fdocs\u002Fseo-audit\u002Fconfiguration","1.docs\u002F3.seo-audit\u002F2.configuration",[20,24],{"title":21,"path":22,"stem":23},"Global Configuration","\u002Fdocs\u002Fseo-audit\u002Fconfiguration\u002Fglobal","1.docs\u002F3.seo-audit\u002F2.configuration\u002F1.global",{"title":25,"path":26,"stem":27},"View Button & Section Configuration","\u002Fdocs\u002Fseo-audit\u002Fconfiguration\u002Flocal","1.docs\u002F3.seo-audit\u002F2.configuration\u002F2.local",false,{"title":30,"path":31,"stem":32,"children":33,"page":28},"Guide","\u002Fdocs\u002Fseo-audit\u002Fguide","1.docs\u002F3.seo-audit\u002F3.guide",[34,38,42],{"title":35,"path":36,"stem":37},"Assessments for SEO and Readability","\u002Fdocs\u002Fseo-audit\u002Fguide\u002Fassessments","1.docs\u002F3.seo-audit\u002F3.guide\u002F1.assessments",{"title":39,"path":40,"stem":41},"Preview URL","\u002Fdocs\u002Fseo-audit\u002Fguide\u002Fpreview-url","1.docs\u002F3.seo-audit\u002F3.guide\u002F2.preview-url",{"title":43,"path":44,"stem":45},"Ratings","\u002Fdocs\u002Fseo-audit\u002Fguide\u002Fratings","1.docs\u002F3.seo-audit\u002F3.guide\u002F3.ratings",{"data":47,"body":48},{},{"type":49,"children":50},"root",[51],{"type":52,"tag":53,"props":54,"children":55},"element","p",{},[56,59,68,70,77,79,86],{"type":57,"value":58},"text","Kirby Tools is built on ",{"type":52,"tag":60,"props":61,"children":65},"a",{"href":62,"rel":63},"https:\u002F\u002Fgetkirby.com",[64],"nofollow",[66],{"type":57,"value":67},"Kirby",{"type":57,"value":69}," – with gratitude to the team and community who make it. Help me improve the plugins: share feedback in ",{"type":52,"tag":60,"props":71,"children":74},{"href":72,"rel":73},"https:\u002F\u002Fgithub.com\u002Fkirby-tools\u002Fcommunity\u002Fdiscussions",[64],[75],{"type":57,"value":76},"Discussions",{"type":57,"value":78}," or report bugs via ",{"type":52,"tag":60,"props":80,"children":83},{"href":81,"rel":82},"https:\u002F\u002Fgithub.com\u002Fkirby-tools\u002Fcommunity\u002Fissues",[64],[84],{"type":57,"value":85},"Issues",{"type":57,"value":87},".",{"title":89,"date":90},"v3.5.0","2026-09-16",{"id":92,"title":39,"body":93,"description":300,"extension":301,"meta":302,"navigation":181,"path":40,"seo":303,"stem":41,"__hash__":304},"docs\u002F1.docs\u002F3.seo-audit\u002F3.guide\u002F2.preview-url.md",{"type":94,"value":95,"toc":293},"minimark",[96,104,109,112,129,133,140,210,221,224,235,239,247,251,254,269,273,289],[53,97,98,99,103],{},"The analysis reads the preview URL of the version it looks at: the unsaved changes while the form differs from the published content, otherwise the published page. Draft pages, custom hostnames, and per-language variants are all in scope. A page without a preview URL cannot be analyzed: its blueprint sets ",[100,101,102],"code",{},"options.preview: false",", or the editor's role lacks the preview permission.",[105,106,108],"h2",{"id":107},"model-support","Model Support",[53,110,111],{},"The plugin works with pages and the site:",[113,114,115,123],"ul",{},[116,117,118,122],"li",{},[119,120,121],"strong",{},"Pages",": Analyze individual page content.",[116,124,125,128],{},[119,126,127],{},"Site",": Analyze the site through its preview URL, the home page.",[105,130,132],{"id":131},"custom-target-url","Custom Target URL",[53,134,135,136,139],{},"In certain cases, you might want to customize the target URL used to generate the SEO report. This can be done by adding a ",[100,137,138],{},"preview"," option to the model's blueprint:",[141,142,148],"pre",{"className":143,"code":144,"filename":145,"language":146,"meta":147,"style":147},"language-yaml shiki shiki-themes github-light github-light github-dark","options:\n  preview: https:\u002F\u002Fgetkirby.com\u002Ffeatures\u002Fdevelopers\n\nsections:\n  seoAudit:\n    type: seo-audit\n","pages\u002Fdefault.yml","yaml","",[100,149,150,163,176,183,191,199],{"__ignoreMap":147},[151,152,155,159],"span",{"class":153,"line":154},"line",1,[151,156,158],{"class":157},"sovSZ","options",[151,160,162],{"class":161},"sxrX7",":\n",[151,164,166,169,172],{"class":153,"line":165},2,[151,167,168],{"class":157},"  preview",[151,170,171],{"class":161},": ",[151,173,175],{"class":174},"sIIMD","https:\u002F\u002Fgetkirby.com\u002Ffeatures\u002Fdevelopers\n",[151,177,179],{"class":153,"line":178},3,[151,180,182],{"emptyLinePlaceholder":181},true,"\n",[151,184,186,189],{"class":153,"line":185},4,[151,187,188],{"class":157},"sections",[151,190,162],{"class":161},[151,192,194,197],{"class":153,"line":193},5,[151,195,196],{"class":157},"  seoAudit",[151,198,162],{"class":161},[151,200,202,205,207],{"class":153,"line":201},6,[151,203,204],{"class":157},"    type",[151,206,171],{"class":161},[151,208,209],{"class":174},"seo-audit\n",[53,211,212,213,216,217,220],{},"While the form has unsaved changes, the URL carries Kirby's ",[100,214,215],{},"_version=changes"," and ",[100,218,219],{},"_token"," query, so a frontend that ignores them renders the published content.",[53,222,223],{},"This is particularly useful for:",[113,225,226,229,232],{},[116,227,228],{},"Analyzing external URLs",[116,230,231],{},"Testing staging environments",[116,233,234],{},"Analyzing specific URL variations",[105,236,238],{"id":237},"cross-origin-analysis","Cross-Origin Analysis",[53,240,241,242,246],{},"A preview URL on the Panel's own origin is fetched by the browser. Any other origin is fetched by Kirby on the server, so CORS never applies – the ",[60,243,245],{"href":244},"\u002Fdocs\u002Fseo-audit\u002Fconfiguration\u002Fglobal#proxy-configuration","proxy settings"," in the global configuration apply only to that fetch.",[105,248,250],{"id":249},"language-specific-analysis","Language-Specific Analysis",[53,252,253],{},"On multi-language sites, the analysis targets the preview URL of the language selected in the Panel, so a secondary language is analyzed against its translated page.",[255,256,260],"callout",{"color":257,"icon":258,"to":259},"info","i-ri-information-line","\u002Fdocs\u002Fseo-audit\u002Fguide\u002Fassessments#language-specific-features",[53,261,262,263,266,267,87],{},"Which assessments run depends on the ",[100,264,265],{},"lang"," attribute of the rendered page – see ",[119,268,35],{},[105,270,272],{"id":271},"debugging-url-resolution","Debugging URL Resolution",[53,274,275,276,279,280,286,287,87],{},"When the preview URL cannot be reached or returns an error status, the analysis stops with an error that names the URL actually fetched. The browser console always shows the URL the analysis starts from, which is the preview URL before any ",[100,277,278],{},"urlResolver"," rewrite. To see the HTML extracted from the fetched page, set ",[60,281,283],{"href":282},"\u002Fdocs\u002Fseo-audit\u002Fconfiguration\u002Flocal#loglevel",[100,284,285],{},"logLevel"," to ",[100,288,257],{},[290,291,292],"style",{},"html pre.shiki code .sovSZ, html code.shiki .sovSZ{--shiki-light:#22863A;--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":147,"searchDepth":165,"depth":165,"links":294},[295,296,297,298,299],{"id":107,"depth":165,"text":108},{"id":131,"depth":165,"text":132},{"id":237,"depth":165,"text":238},{"id":249,"depth":165,"text":250},{"id":271,"depth":165,"text":272},"The analysis reads the page's preview URL, unsaved changes included – override the target per blueprint when you need a different one.","md",{},{"title":39,"description":300},"YrGQKjUdXfQeoL4iX-UAzAQ3xsZFzFMlhMQhLOXezYo",[306,308],{"title":35,"path":36,"stem":37,"description":307,"children":-1},"Every SEO and readability assessment from the Yoast SEO engine, plus the checks Kirby SEO Audit adds.",{"title":43,"path":44,"stem":45,"description":309,"children":-1},"A rating per page and language – shown as a dot on the view button, kept until the next analysis, and available to blueprints and templates.",1789567387433]