<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vladyslav Yanchenko · Salestudia</title>
    <description>The latest articles on DEV Community by Vladyslav Yanchenko · Salestudia (@salestudia).</description>
    <link>https://dev.to/salestudia</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4240697%2Fc97cd3c0-f869-4914-b4d3-a1077dce36b0.jpg</url>
      <title>DEV Community: Vladyslav Yanchenko · Salestudia</title>
      <link>https://dev.to/salestudia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/salestudia"/>
    <language>en</language>
    <item>
      <title>Debugging 404 URLs That Weren't Links: A React Breadcrumb Case</title>
      <dc:creator>Vladyslav Yanchenko · Salestudia</dc:creator>
      <pubDate>Sun, 15 Nov 2026 14:05:25 +0000</pubDate>
      <link>https://dev.to/salestudia/debugging-404-urls-that-werent-links-a-react-breadcrumb-case-47am</link>
      <guid>https://dev.to/salestudia/debugging-404-urls-that-werent-links-a-react-breadcrumb-case-47am</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclosure: This article was generated with AI from a documented site audit. The code and paths below are simplified examples, not private repository excerpts.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A path in a 404 report can look close enough to a real route that your first instinct is to redirect it. On &lt;a href="https://handmen.de/ratgeber" rel="noopener noreferrer"&gt;HandMen’s German-language guide site&lt;/a&gt;, the reported paths looked like existing pages with &lt;code&gt;-1&lt;/code&gt; or &lt;code&gt;-2&lt;/code&gt; tacked onto the end. The useful clue was not a missing route or a breadcrumb link. It was a URL-shaped string emitted as a React list key.&lt;/p&gt;

&lt;p&gt;The distinction mattered: the team could remove the string at its source without redirecting a page that had never been shown to exist.&lt;/p&gt;

&lt;h2&gt;
  
  
  Look for a route, a link, and a string separately
&lt;/h2&gt;

&lt;p&gt;Take one reported URL and one plausible source page. If the report shows a referring page, treat it as a starting point, not a complete record of how the URL was discovered.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Request the two paths.&lt;/strong&gt; Is the intended route live, and does the suspicious variant actually return 404? Check the response status as well as what the page looks like.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check navigation targets.&lt;/strong&gt; On the candidate source page, inspect actual anchor destinations in the response and in the rendered DOM. Google’s &lt;a href="https://developers.google.com/search/docs/crawling-indexing/links-crawlable" rel="noopener noreferrer"&gt;crawlable-link guide&lt;/a&gt; explains why an anchor with an &lt;code&gt;href&lt;/code&gt; is the relevant comparison. A substring search alone cannot establish that a matching link exists.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search for the full variant in the response.&lt;/strong&gt; Note where the match occurs: an anchor, canonical, hreflang, structured data, or a serialized payload. Check the sitemap separately. A string in a payload and a visible navigation link are different findings.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In the HandMen audit, 186 of the reported variants matched breadcrumb keys in serialized output. None of those matches was a corresponding breadcrumb &lt;code&gt;href&lt;/code&gt;. A separate reported path came from template data and needed a different diagnosis. This establishes where the strings appeared in the output that was examined. It does &lt;strong&gt;not&lt;/strong&gt; prove what Google used to discover them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep the key separate from the destination
&lt;/h2&gt;

&lt;p&gt;Here is a simplified version of the pattern. Suppose &lt;code&gt;item.href&lt;/code&gt; is &lt;code&gt;/guides/flooring&lt;/code&gt; and the item is at position 2:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// The destination is /guides/flooring.&lt;/span&gt;
&lt;span class="c1"&gt;// The key can become /guides/flooring-2.&lt;/span&gt;
&lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sb"&gt;`${item.href}-${index}`&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;href&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A key is React bookkeeping, not an anchor attribute. In this case the page’s rendering pipeline exposed the key in serialized output. Don’t assume every React application serializes keys the same way: inspect what your build actually serves.&lt;/p&gt;

&lt;p&gt;At this site, breadcrumb paths were already stable and unique among siblings, so the fix removed the positional suffix:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;href&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt; &lt;span class="n"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;href&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;item&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;label&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="n"&gt;li&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If a breadcrumb can repeat the same destination, use an explicit, stable identifier from the data instead. React’s &lt;a href="https://react.dev/learn/rendering-lists" rel="noopener noreferrer"&gt;list rendering documentation&lt;/a&gt; explains the sibling-uniqueness and stability requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verify the fix in the response, not just in the component
&lt;/h2&gt;

&lt;p&gt;For a regression check, compare the same suspect strings with the rendered link destinations before and after deployment. In the November 10 production check, the team sampled 12 pages across guide listings, articles, and illustrative project pages. The sampled real routes still responded with HTTP 200, the suffix strings were absent from those pages, canonical targets remained correct, and intentional &lt;code&gt;noindex&lt;/code&gt; directives on the example pages stayed in place.&lt;/p&gt;

&lt;p&gt;That is a deployment check, not a Search Console outcome. We did not establish when the report would clear or whether any ranking changed. If a flagged URL has no real page or useful replacement, don’t create a redirect merely to make the report shorter. Fix the generator first; add a redirect only when you have evidence of an actual URL move or a relevant replacement.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>seo</category>
      <category>debugging</category>
    </item>
    <item>
      <title>A Technical SEO Checklist Before Launching a Small Business Website</title>
      <dc:creator>Vladyslav Yanchenko · Salestudia</dc:creator>
      <pubDate>Thu, 12 Nov 2026 10:09:05 +0000</pubDate>
      <link>https://dev.to/salestudia/a-technical-seo-checklist-before-launching-a-small-business-website-4ip4</link>
      <guid>https://dev.to/salestudia/a-technical-seo-checklist-before-launching-a-small-business-website-4ip4</guid>
      <description>&lt;p&gt;A small business website can look finished while its important pages still carry a staging &lt;code&gt;noindex&lt;/code&gt; rule, point to the wrong canonical URL, or disappear from the mobile navigation.&lt;/p&gt;

&lt;p&gt;This checklist covers a practical release review for a service business website. Run it against the production domain before announcing the launch, then repeat the public checks after deployment. For an online store, include a category and product page in the sample.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Decide which pages should appear in search
&lt;/h2&gt;

&lt;p&gt;Start with a short URL inventory: the homepage, service overview, one service detail page, an article, and the contact page.&lt;/p&gt;

&lt;p&gt;For each public page intended for search, check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The final response is &lt;code&gt;200 OK&lt;/code&gt; and contains the expected content.&lt;/li&gt;
&lt;li&gt;Neither the HTML nor the &lt;code&gt;X-Robots-Tag&lt;/code&gt; response header contains an unintended &lt;code&gt;noindex&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;robots.txt&lt;/code&gt; allows the crawling needed to inspect that page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Keep deliberate exclusions where they belong. Private staging environments should have access controls. Also, blocking crawling does not reliably remove an already known URL from search: Google must be able to fetch a page to process its &lt;code&gt;noindex&lt;/code&gt; rule.&lt;/p&gt;

&lt;p&gt;Reference: &lt;a href="https://developers.google.com/search/docs/crawling-indexing/block-indexing" rel="noopener noreferrer"&gt;Google's noindex documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Inspect redirects on real page paths
&lt;/h2&gt;

&lt;p&gt;Test HTTP and HTTPS, plus www and non-www versions, using a service page as well as the homepage. A redirect should preserve the intended destination.&lt;/p&gt;

&lt;p&gt;Replace this example URL with your own:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl -sS -L -D - -o /dev/null &lt;span class="s1"&gt;'http://example.com/services/'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This prints the response headers along the redirect chain while discarding the body. Check each status and &lt;code&gt;Location&lt;/code&gt; header, then the final response.&lt;/p&gt;

&lt;p&gt;Use &lt;code&gt;301&lt;/code&gt; or &lt;code&gt;308&lt;/code&gt; for permanent moves. Use temporary redirects for genuinely temporary changes. Avoid loops, unnecessary hops, and a rule that sends every old page to the homepage.&lt;/p&gt;

&lt;p&gt;Reference: &lt;a href="https://developers.google.com/search/docs/crawling-indexing/301-redirects" rel="noopener noreferrer"&gt;Google's redirect guidance&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Check the canonical on each page type
&lt;/h2&gt;

&lt;p&gt;A unique page can declare its own preferred URL:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"canonical"&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"https://example.com/services/"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Look for staging domains, incorrect hosts, or templates that give every service page the same canonical.&lt;/p&gt;

&lt;p&gt;Canonical signals are intended for duplicate or very similar pages. A separate service page with distinct content should not automatically point to the homepage. Google can select a different canonical, so also check its indexed decision later.&lt;/p&gt;

&lt;p&gt;Reference: &lt;a href="https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls" rel="noopener noreferrer"&gt;Canonical URL guidance&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Connect navigation and sitemap entries
&lt;/h2&gt;

&lt;p&gt;Reach each important page through ordinary navigation or a relevant contextual link. Use crawlable HTML links with real destinations:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"/services/"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Explore our services&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the XML sitemap, list the preferred public URLs you want indexed. Remove staging addresses, redirects and intentionally excluded pages. Check that listed URLs work.&lt;/p&gt;

&lt;p&gt;A sitemap helps discovery; it does not guarantee indexing or replace useful navigation.&lt;/p&gt;

&lt;p&gt;References: &lt;a href="https://developers.google.com/search/docs/crawling-indexing/links-crawlable" rel="noopener noreferrer"&gt;Crawlable links&lt;/a&gt; and &lt;a href="https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap" rel="noopener noreferrer"&gt;building a sitemap&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Review titles and descriptions in context
&lt;/h2&gt;

&lt;p&gt;Give important pages distinct, descriptive titles and clear visible headings. Write descriptions that accurately summarise their contents.&lt;/p&gt;

&lt;p&gt;Avoid repeating the same generic title across every service page. Google can generate different title links and snippets, so these fields are inputs rather than a guaranteed search-result preview.&lt;/p&gt;

&lt;p&gt;References: &lt;a href="https://developers.google.com/search/docs/appearance/title-link" rel="noopener noreferrer"&gt;Title links&lt;/a&gt; and &lt;a href="https://developers.google.com/search/docs/appearance/snippet" rel="noopener noreferrer"&gt;search snippets&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Test the mobile experience and performance
&lt;/h2&gt;

&lt;p&gt;On a phone, open the menu, follow a service link, read the main content, and complete a test enquiry. Check whether banners obscure controls or elements shift while loading.&lt;/p&gt;

&lt;p&gt;Use PageSpeed Insights to investigate performance. Current good Core Web Vitals thresholds are:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Good threshold&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Largest Contentful Paint (LCP)&lt;/td&gt;
&lt;td&gt;2.5 seconds or less&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Interaction to Next Paint (INP)&lt;/td&gt;
&lt;td&gt;200 milliseconds or less&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cumulative Layout Shift (CLS)&lt;/td&gt;
&lt;td&gt;0.1 or less&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These thresholds apply at the 75th percentile of real visits, with mobile and desktop considered separately. A new site may lack sufficient field data. Lab testing helps find issues; a Lighthouse score alone does not establish real-world performance.&lt;/p&gt;

&lt;p&gt;References: &lt;a href="https://web.dev/articles/vitals" rel="noopener noreferrer"&gt;Core Web Vitals&lt;/a&gt; and &lt;a href="https://developers.google.com/search/docs/appearance/core-web-vitals" rel="noopener noreferrer"&gt;Google Search guidance&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Verify the public deployment in Search Console
&lt;/h2&gt;

&lt;p&gt;After launch, inspect representative URLs using Search Console's live test. Review what Google can fetch and render.&lt;/p&gt;

&lt;p&gt;Then distinguish the live test from the indexed report: the former checks the current page, while the latter reflects Google's indexed information. The live test does not predict Google's canonical selection. Requesting indexing also does not guarantee inclusion.&lt;/p&gt;

&lt;p&gt;Reference: &lt;a href="https://support.google.com/webmasters/answer/9012289?hl=en" rel="noopener noreferrer"&gt;URL Inspection documentation&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Record a clear result for each check
&lt;/h2&gt;

&lt;p&gt;A small release log makes fixes easier to verify:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Check&lt;/th&gt;
&lt;th&gt;Evidence to record&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Public access&lt;/td&gt;
&lt;td&gt;Final status, visible content and robots directives&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Redirects&lt;/td&gt;
&lt;td&gt;Tested starting URL, each hop and final destination&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Canonical&lt;/td&gt;
&lt;td&gt;Declared URL and whether it matches the page&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Discovery&lt;/td&gt;
&lt;td&gt;Internal link and sitemap entry&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mobile usability&lt;/td&gt;
&lt;td&gt;Device, task tested and any obstruction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Search Console&lt;/td&gt;
&lt;td&gt;Test date and live versus indexed result&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Fix launch blockers first: accidental exclusions, broken destinations, incorrect canonical templates and unusable mobile navigation. Keep remaining improvements in a dated follow-up list.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;About the author:&lt;/strong&gt; Vladyslav Yanchenko works on SEO and website structure at Salestudia in Germany. The agency's &lt;a href="https://www.salestudia.de/en/pages/seo-audit-and-seo-promotion" rel="noopener noreferrer"&gt;SEO audit and optimisation overview&lt;/a&gt; explains the broader scope of that work.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>seo</category>
      <category>beginners</category>
      <category>performance</category>
    </item>
  </channel>
</rss>
