<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Fancy Fox Recipes]]></title><description><![CDATA[Fancy Fox Recipes]]></description><link>https://fancyfoxrecipes.hashnode.dev</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1593680282896/kNC7E8IR4.png</url><title>Fancy Fox Recipes</title><link>https://fancyfoxrecipes.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 20:35:06 GMT</lastBuildDate><atom:link href="https://fancyfoxrecipes.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Public Is Not the Same as Indexed: SEO Lessons From 1,500 Recipe Pages]]></title><description><![CDATA[The Fancy Fox recipe archive grew to more than 1,500 static pages before search discovery became the project's most important technical question.
Our first instinct was too binary: either put a page i]]></description><link>https://fancyfoxrecipes.hashnode.dev/public-is-not-the-same-as-indexed-seo-lessons-from-1-500-recipe-pages</link><guid isPermaLink="true">https://fancyfoxrecipes.hashnode.dev/public-is-not-the-same-as-indexed-seo-lessons-from-1-500-recipe-pages</guid><category><![CDATA[SEO]]></category><category><![CDATA[static site generation]]></category><category><![CDATA[Python]]></category><category><![CDATA[structured data]]></category><category><![CDATA[web performance]]></category><dc:creator><![CDATA[Fancy Fox Recipes]]></dc:creator><pubDate>Tue, 01 Sep 2026 22:25:22 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a974d010311928d6ec6071b/aeb7e25f-3e47-48c9-911f-d9bf25137fd7.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The <a href="https://fox.dailyhabit.me/">Fancy Fox recipe archive</a> grew to more than 1,500 static pages before search discovery became the project's most important technical question.</p>
<p>Our first instinct was too binary: either put a page in the sitemap or hide it from search. That confused three different controls.</p>
<h2>Three states, not two</h2>
<p><strong>Public</strong> means a person can open the URL and use the page.</p>
<p><strong>Indexable</strong> means the page does not prohibit a search engine from indexing it.</p>
<p><strong>Promoted</strong> means we actively surface the page through the sitemap, homepage, important collections, and external distribution.</p>
<p>A page can be public and indexable without appearing in the sitemap. A sitemap is a discovery and prioritization signal, not a complete inventory requirement and not a guarantee of indexing.</p>
<p>That distinction let us keep the long-tail archive available while giving the best pages a clearer path.</p>
<h2>Our 50-URL sitemap</h2>
<p>The current sitemap deliberately contains 50 URLs:</p>
<ul>
<li><p>the homepage;</p>
</li>
<li><p>10 cuisine collections;</p>
</li>
<li><p>5 category collections;</p>
</li>
<li><p>4 diet collections;</p>
</li>
<li><p>30 featured recipes.</p>
</li>
</ul>
<p>The featured recipes are selected from engagement on Fancy Fox-owned social posts. A page such as <a href="https://fox.dailyhabit.me/recipes/crispy-salmon-with-cha-2.html">crispy salmon with charred zucchini, roasted fennel, and basil-pistachio crema</a> receives homepage placement and strong internal links. The rest of the archive remains reachable through collections, ingredients, and search.</p>
<h2>What stayed indexable</h2>
<p>We did not add <code>noindex</code> to every recipe outside the sitemap. Doing that would prevent a search engine from selecting a useful long-tail page it discovers through internal or external links.</p>
<p>Instead, those recipes remain self-canonical and indexable. We reserve <code>noindex</code> for pages that should genuinely stay out of search, not merely pages that are absent from today's promoted set.</p>
<h2>Collection pages need real identity</h2>
<p>Taxonomy pages can become thin permutations quickly. We reduced and cleaned the public taxonomy, then gave the important collection pages:</p>
<ul>
<li><p>a descriptive title and meta description;</p>
</li>
<li><p>a self-canonical URL;</p>
</li>
<li><p>a visible recipe list;</p>
</li>
<li><p>collection-specific imagery;</p>
</li>
<li><p>crawlable links to the recipes;</p>
</li>
<li><p>valid <code>ItemList</code> structured data matching the visible entries.</p>
</li>
</ul>
<p>For example, the <a href="https://fox.dailyhabit.me/cuisines/italian.html">Italian recipe collection</a> is a real browsing page, not a keyword landing page with an empty template.</p>
<h2>Structured data has to match the page</h2>
<p>Recipe JSON-LD is valuable only when the underlying values are valid and visible content tells the same story. A single model placeholder such as <code>"none"</code> in an ingredient preparation field can make a generated page look careless even if the JSON parses.</p>
<p>We added validation before rendering and treated structured-data tests as build tests. The checks cover required recipe fields, canonical URLs, taxonomy lists, and sitemap policy.</p>
<h2>Performance is part of crawl quality and human quality</h2>
<p>The public pages are static, images have optimized WebP versions, and below-fold media is lazy-loaded. Those changes help mobile visitors first. They also make the site easier for crawlers to fetch consistently.</p>
<p>The biggest visual asset remains the recipe image, so optimization cannot mean removing it. The correct trade is a properly sized, compressed image with stable dimensions and a fast first render.</p>
<h2>The remaining constraint is authority</h2>
<p>Technical correctness makes a page eligible. It does not make the domain important.</p>
<p>After fixing canonicals, structured data, internal links, sitemap scope, and mobile rendering, the next bottleneck is external evidence: useful references from real profiles, publications, datasets, product listings, and community answers.</p>
<p>That is why we are publishing the architecture and a small recipe dataset rather than manufacturing low-quality directory links. The external page must deserve to exist even if the backlink carried no ranking credit.</p>
<p>The resulting <a href="https://github.com/olivierdh/fancy-fox-featured-seasonal-recipes">30-recipe image-and-text dataset is available under CC0 on GitHub</a>, with one Markdown record and one image per recipe.</p>
<p>The practical lesson is simple: keep useful pages public, let search engines choose among indexable pages, and use the sitemap to express editorial priority. Those are related decisions, but they are not the same switch.</p>
<p>Explore the live implementation at <a href="https://fox.dailyhabit.me/">Fancy Fox</a>.</p>
<p><em>Disclosure: This article is from the team building Fancy Fox. Recipe concepts and imagery on the service are AI-assisted.</em></p>
]]></content:encoded></item></channel></rss>