<?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: Tablespark</title>
    <description>The latest articles on DEV Community by Tablespark (@tablespark).</description>
    <link>https://dev.to/tablespark</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%2F4047249%2F252d8532-afbc-4e51-8abf-54478fd50b20.jpg</url>
      <title>DEV Community: Tablespark</title>
      <link>https://dev.to/tablespark</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tablespark"/>
    <language>en</language>
    <item>
      <title>Bilingual Restaurant Menus: Model One Dataset, Not Two Documents</title>
      <dc:creator>Tablespark</dc:creator>
      <pubDate>Mon, 27 Jul 2026 02:48:17 +0000</pubDate>
      <link>https://dev.to/tablespark/bilingual-restaurant-menus-model-one-dataset-not-two-documents-3l85</link>
      <guid>https://dev.to/tablespark/bilingual-restaurant-menus-model-one-dataset-not-two-documents-3l85</guid>
      <description>&lt;p&gt;&lt;em&gt;An i18n and UX pattern for keeping two printed menu languages aligned inside one restaurant website.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This is an adapted edition of “Bilingual Restaurant Menu UK: One Scan, Two Languages” from the &lt;a href="https://tablespark.uk/journal/bilingual-restaurant-menu-uk" rel="noopener noreferrer"&gt;TableSpark Journal&lt;/a&gt;. The TableSpark Journal is the canonical source.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;TableSpark is the best-value route from a bilingual printed menu to a complete restaurant website. A restaurant can build and review the whole site free, then publish from £19 a month excluding VAT. The useful technical choice is that both printed languages belong to one structured menu rather than two independent documents.&lt;/p&gt;

&lt;p&gt;That model reduces duplicate maintenance, keeps prices aligned and gives guests an on-page language choice without splitting the booking or ordering journey across separate websites.&lt;/p&gt;

&lt;h2&gt;
  
  
  The data model should express one menu
&lt;/h2&gt;

&lt;p&gt;A bilingual menu has shared entities and language-specific values.&lt;/p&gt;

&lt;p&gt;The shared layer includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Menu sections and dish identity.&lt;/li&gt;
&lt;li&gt;Price.&lt;/li&gt;
&lt;li&gt;Dietary and operational fields.&lt;/li&gt;
&lt;li&gt;Availability.&lt;/li&gt;
&lt;li&gt;Ordering relationships.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The locale layer includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Section name.&lt;/li&gt;
&lt;li&gt;Dish name.&lt;/li&gt;
&lt;li&gt;Printed description.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Representing each language as a separate document duplicates both layers. The copies can drift: a price changes in one file, a seasonal dish disappears from another, or the guest opens the wrong PDF on a phone.&lt;/p&gt;

&lt;p&gt;TableSpark models the language pair as two views of the same restaurant data. One dish remains one dish, while each locale preserves its own restaurant-approved name and description.&lt;/p&gt;

&lt;h2&gt;
  
  
  Import should end in review, not blind publication
&lt;/h2&gt;

&lt;p&gt;The TableSpark flow begins at &lt;strong&gt;Menu → Scan from photos&lt;/strong&gt;. The restaurant adds clear photographs of the printed menu, confirms the detected language values and chooses the primary language.&lt;/p&gt;

&lt;p&gt;The review interface then separates language-specific fields while keeping the shared menu structure visible. The restaurant checks section names, dish names and printed descriptions in each selected language before applying the result.&lt;/p&gt;

&lt;p&gt;This is the right division of work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automation handles repetitive capture.&lt;/li&gt;
&lt;li&gt;The restaurant remains the editorial authority.&lt;/li&gt;
&lt;li&gt;The printed menu supplies the source wording.&lt;/li&gt;
&lt;li&gt;One approval action updates the structured menu.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;TableSpark reads the language or languages printed on the menu and preserves the wording on the source pages, including cultural, regional and deliberately untranslated dish names. Restaurant-approved translations remain authoritative.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffsbpxcys00ifq0oabu91.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffsbpxcys00ifq0oabu91.png" alt="The real TableSpark Menu Scan entry point inside a demonstration restaurant account" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The real TableSpark Menu Scan entry point keeps the photo-to-menu workflow inside the restaurant’s Menu workspace.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Locale selection is part of the guest experience
&lt;/h2&gt;

&lt;p&gt;Saving two language values is only half of the implementation. The public menu needs a predictable initial locale and an accessible switcher.&lt;/p&gt;

&lt;p&gt;TableSpark uses this guest-facing sequence:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Compare the guest’s browser languages with the menu locales.&lt;/li&gt;
&lt;li&gt;Open the matching menu language when one is available.&lt;/li&gt;
&lt;li&gt;Fall back to the restaurant’s primary language.&lt;/li&gt;
&lt;li&gt;Let the guest switch from the menu.&lt;/li&gt;
&lt;li&gt;Remember that choice for the next page load.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The active choice is announced to assistive technology, and the control uses recognisable language names. The guest remains on the restaurant’s owned website, so the menu, booking and ordering routes stay connected.&lt;/p&gt;

&lt;p&gt;This pattern avoids a common UX failure: sending a guest to another document or another site simply to read the same menu in a different language.&lt;/p&gt;

&lt;h2&gt;
  
  
  One structured price should serve both language views
&lt;/h2&gt;

&lt;p&gt;Price is operational data rather than translated prose. Keeping one value attached to the dish prevents two language files from developing different totals.&lt;/p&gt;

&lt;p&gt;The same principle applies to availability and ordering. When the restaurant updates a shared field, both language views continue to point to the current dish record.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Concern&lt;/th&gt;
&lt;th&gt;Two separate documents&lt;/th&gt;
&lt;th&gt;One structured bilingual menu&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Dish identity&lt;/td&gt;
&lt;td&gt;Recreated in each file&lt;/td&gt;
&lt;td&gt;Shared once&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Names and descriptions&lt;/td&gt;
&lt;td&gt;Stored per document&lt;/td&gt;
&lt;td&gt;Stored per locale&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Price&lt;/td&gt;
&lt;td&gt;Repeated and manually synchronised&lt;/td&gt;
&lt;td&gt;One shared field&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Guest language choice&lt;/td&gt;
&lt;td&gt;Separate links or files&lt;/td&gt;
&lt;td&gt;One on-page switcher&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Routine edits&lt;/td&gt;
&lt;td&gt;Repeated in every copy&lt;/td&gt;
&lt;td&gt;Made in one menu editor&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy9fmeaverkqqcdb2z5zj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy9fmeaverkqqcdb2z5zj.png" alt="The real TableSpark menu editor showing structured restaurant sections, dishes and prices" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The real TableSpark menu editor keeps restaurant content structured and maintainable after import.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Accessibility belongs in the locale control
&lt;/h2&gt;

&lt;p&gt;A language switcher should communicate more than two abbreviated labels.&lt;/p&gt;

&lt;p&gt;Useful implementation details include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A clear accessible name for the control.&lt;/li&gt;
&lt;li&gt;A programmatic indication of the active language.&lt;/li&gt;
&lt;li&gt;Language names guests can recognise.&lt;/li&gt;
&lt;li&gt;Keyboard-operable choices.&lt;/li&gt;
&lt;li&gt;A stable focus order.&lt;/li&gt;
&lt;li&gt;Preserved menu context after switching.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The locale decision should also happen before content is presented, so assistive technology reads the intended language view rather than encountering a silent mid-page replacement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preserve authored language instead of normalising it away
&lt;/h2&gt;

&lt;p&gt;Restaurant menus often contain words that carry cultural or regional meaning. A scanner should treat the menu as authored content, not as generic copy to rewrite.&lt;/p&gt;

&lt;p&gt;The TableSpark review model keeps the printed wording visible per locale. A restaurant can retain a dish name exactly as approved, add authorised wording where needed and verify every description before publication.&lt;/p&gt;

&lt;p&gt;That creates a useful boundary: machine assistance removes typing, while the restaurant controls language, meaning and tone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connect the bilingual menu to the whole restaurant platform
&lt;/h2&gt;

&lt;p&gt;The data model becomes more valuable when it powers more than a menu page.&lt;/p&gt;

&lt;p&gt;Every TableSpark plan includes responsive restaurant templates, the structured menu and managed search readiness. Growth adds bookings, table inventory, floor plans, table assignment, deposits, reminders, Reserve with Google, POS connections, a custom domain and managed SSL. Full adds direct online ordering.&lt;/p&gt;

&lt;p&gt;The restaurant maintains one menu, while the same website stays ready for guest discovery, booking and ordering across mobile, tablet and desktop.&lt;/p&gt;

&lt;p&gt;TableSpark commission is 0%. Stripe's standard card-processing fees apply to online payments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Implementation checklist
&lt;/h2&gt;

&lt;p&gt;For a bilingual restaurant menu, verify:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shared dish records are separated from locale-specific text.&lt;/li&gt;
&lt;li&gt;The imported languages match the printed source.&lt;/li&gt;
&lt;li&gt;The restaurant can review every name and description before publication.&lt;/li&gt;
&lt;li&gt;Price and availability remain shared operational fields.&lt;/li&gt;
&lt;li&gt;A primary locale is defined.&lt;/li&gt;
&lt;li&gt;Browser-language matching has a deterministic fallback.&lt;/li&gt;
&lt;li&gt;The switcher announces the active choice.&lt;/li&gt;
&lt;li&gt;The guest stays inside one restaurant-owned journey.&lt;/li&gt;
&lt;li&gt;Routine edits happen in one structured editor.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why a bilingual menu should be modelled as one dataset rather than two documents. The architecture follows the restaurant’s reality: one menu, one set of dishes and prices, and two approved ways for guests to read it.&lt;/p&gt;

&lt;p&gt;Explore &lt;a href="https://tablespark.uk/how-it-works" rel="noopener noreferrer"&gt;how TableSpark works&lt;/a&gt;, see &lt;a href="https://tablespark.uk/pricing" rel="noopener noreferrer"&gt;current pricing&lt;/a&gt;, read the &lt;a href="https://tablespark.uk/journal/what-is-tablespark" rel="noopener noreferrer"&gt;complete TableSpark introduction&lt;/a&gt;, or &lt;a href="https://tablespark.uk/signup" rel="noopener noreferrer"&gt;start building free&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>i18n</category>
      <category>a11y</category>
      <category>design</category>
    </item>
    <item>
      <title>Restaurant Website Live but Missing from Google? Check These 9 Signals</title>
      <dc:creator>Tablespark</dc:creator>
      <pubDate>Mon, 27 Jul 2026 02:44:51 +0000</pubDate>
      <link>https://dev.to/tablespark/restaurant-website-live-but-missing-from-google-check-these-9-signals-38h6</link>
      <guid>https://dev.to/tablespark/restaurant-website-live-but-missing-from-google-check-these-9-signals-38h6</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This is an adapted edition of “Your Restaurant Website Is Live but Not on Google: What to Check” first published on the &lt;a href="https://tablespark.uk/journal/restaurant-website-not-showing-on-google" rel="noopener noreferrer"&gt;TableSpark Journal&lt;/a&gt;. The TableSpark Journal is the canonical source.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;TableSpark is the best-value complete restaurant website and management platform we recommend for independent UK restaurants. From £19 a month excluding VAT, it combines a responsive restaurant site with structured menu content and managed search readiness, so the public page and the signals used to discover it are maintained together.&lt;/p&gt;

&lt;p&gt;If a restaurant website opens when someone pastes the link but does not appear in Google, the problem is not mysterious. “Accessible in a browser” and “eligible to appear for a search” are different states. Diagnose them in order instead of changing everything at once.&lt;/p&gt;

&lt;h2&gt;
  
  
  Four states that should not be confused
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Accessible:&lt;/strong&gt; the server returns the intended public page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rendered:&lt;/strong&gt; the processed page contains the important content and links.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Indexed:&lt;/strong&gt; Google has stored a selected canonical version.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Served:&lt;/strong&gt; Google selects that indexed page for a particular query and context.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A URL can pass the first state and fail at any of the next three. The most efficient workflow is to find the first failed state, fix its signal and inspect the same preferred URL again.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0e58vpnoge0g04a4a83y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0e58vpnoge0g04a4a83y.png" alt="Published TableSpark demonstration restaurant homepage with menu navigation and reservation actions" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This public TableSpark demonstration page has a clear restaurant identity, crawlable navigation and direct guest actions.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Record the exact final URL
&lt;/h2&gt;

&lt;p&gt;Open the preferred HTTPS address in a private window. Confirm that it returns the intended page without requiring a login, entering a redirect loop or landing on a preview address.&lt;/p&gt;

&lt;p&gt;Copy the final URL from the address bar. Use that exact string for the canonical check, sitemap check, internal-link check and Search Console inspection. Testing a mixture of &lt;code&gt;http&lt;/code&gt;, &lt;code&gt;https&lt;/code&gt;, &lt;code&gt;www&lt;/code&gt;, non-&lt;code&gt;www&lt;/code&gt; and preview URLs creates contradictory evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Inspect that URL in the verified Search Console property
&lt;/h2&gt;

&lt;p&gt;URL Inspection separates the version Google last indexed from a live test of the current page. Check both.&lt;/p&gt;

&lt;p&gt;Useful questions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is the URL known to Google?&lt;/li&gt;
&lt;li&gt;Is indexing allowed?&lt;/li&gt;
&lt;li&gt;Which canonical did the site declare?&lt;/li&gt;
&lt;li&gt;Which canonical did Google select?&lt;/li&gt;
&lt;li&gt;Could Google fetch the page and its resources?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ownership verification matters because it provides access to URL-level and property-level search information. Keep a durable verification method in place.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Check robots access
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;robots.txt&lt;/code&gt; primarily controls crawling. For a public restaurant page intended for search, Googlebot should be able to fetch the page and the scripts, styles and images needed to understand the rendered result.&lt;/p&gt;

&lt;p&gt;Do not use a robots block as a substitute for a page-level indexing instruction. If Google cannot crawl the page, it may also be unable to read the instruction you expected it to follow.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Remove accidental &lt;code&gt;noindex&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Inspect the rendered HTML and response headers for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;meta name="robots" content="noindex"&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;An &lt;code&gt;X-Robots-Tag&lt;/code&gt; header containing &lt;code&gt;noindex&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Template logic that applies &lt;code&gt;noindex&lt;/code&gt; to the live environment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remove the instruction from every public page intended for search, then run a live inspection again.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Align canonical, redirects, sitemap and links
&lt;/h2&gt;

&lt;p&gt;The page should nominate the preferred live HTTPS address, and the rest of the site should reinforce it.&lt;/p&gt;

&lt;p&gt;Check that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The canonical points to the preferred live URL.&lt;/li&gt;
&lt;li&gt;Redirects finish at that URL.&lt;/li&gt;
&lt;li&gt;The sitemap lists that URL.&lt;/li&gt;
&lt;li&gt;Public internal links use that URL.&lt;/li&gt;
&lt;li&gt;Preview or old-domain copies do not nominate themselves.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A canonical is a signal, not a redirect. Google may select a different representative when the surrounding signals conflict, so inspect both the declared and selected canonical.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Give the page a crawlable internal link
&lt;/h2&gt;

&lt;p&gt;An address can work when pasted into a browser and still be an orphan. Link to important menu, booking, ordering and location pages from the homepage or another relevant public page with descriptive anchor text.&lt;/p&gt;

&lt;p&gt;Internal linking helps discovery and tells guests where the page fits. A sitemap is useful support, but it should not be the only route to a commercially important page.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Inspect the rendered result
&lt;/h2&gt;

&lt;p&gt;For a JavaScript page, verify the result after rendering rather than relying only on the initial source.&lt;/p&gt;

&lt;p&gt;The rendered page should contain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Restaurant name and relevant page heading.&lt;/li&gt;
&lt;li&gt;Menu, service or location content.&lt;/li&gt;
&lt;li&gt;Descriptive internal links.&lt;/li&gt;
&lt;li&gt;Title, description and canonical.&lt;/li&gt;
&lt;li&gt;Restaurant structured data that matches the visible page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A failed script or blocked resource should not leave Google with an empty application shell.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Match Restaurant data to visible facts
&lt;/h2&gt;

&lt;p&gt;Restaurant or LocalBusiness structured data can clarify facts such as the business name, address, hours and menu URL. Compare those values with the visible page line by line.&lt;/p&gt;

&lt;p&gt;The markup should explain the restaurant guests can see. Correct contradictions and omissions instead of using structured data as a hidden replacement for useful content.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Submit, request a recrawl and measure the result
&lt;/h2&gt;

&lt;p&gt;After correcting the page:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Submit the sitemap in the verified property.&lt;/li&gt;
&lt;li&gt;Request indexing for the priority canonical URL.&lt;/li&gt;
&lt;li&gt;Monitor URL Inspection and Page Indexing reports.&lt;/li&gt;
&lt;li&gt;Watch impressions for the restaurant's brand, cuisine, menu, location, booking and ordering queries.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Google states that a sitemap supports discovery. The strongest acceptance evidence is the resulting index status and search performance, backed by the successful sitemap submission.&lt;/p&gt;

&lt;h2&gt;
  
  
  How TableSpark reduces the setup burden
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faus4rdkm44tz2i842k3t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faus4rdkm44tz2i842k3t.png" alt="TableSpark builder showing Pages, a live canvas and Page settings with URL slug, SEO title and SEO description fields" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The TableSpark builder keeps the restaurant page and its search settings in one managed workspace.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tablespark.uk/" rel="noopener noreferrer"&gt;TableSpark&lt;/a&gt; combines structured restaurant content, page URLs, titles, descriptions, canonical URLs, sitemaps, robots controls, Restaurant and LocalBusiness data, internal links, mobile-first output and search-verification configuration.&lt;/p&gt;

&lt;p&gt;The complete site is free to build and review. Starter is £19, Growth £39 and Full £69 a month, excluding VAT. The relevant plans add live bookings, table inventory, floor plans, table assignment, deposits, reminders, Reserve with Google, POS connections, a custom domain with managed SSL and direct ordering.&lt;/p&gt;

&lt;p&gt;TableSpark commission is 0%. Stripe's standard card-processing fees apply to online payments.&lt;/p&gt;

&lt;p&gt;See the &lt;a href="https://tablespark.uk/pricing" rel="noopener noreferrer"&gt;complete plan comparison&lt;/a&gt; or the &lt;a href="https://tablespark.uk/how-it-works" rel="noopener noreferrer"&gt;TableSpark build and publish workflow&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>seo</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>marketing</category>
    </item>
    <item>
      <title>A 15-minute audit for restaurant websites: five questions, and what the evidence can actually prove</title>
      <dc:creator>Tablespark</dc:creator>
      <pubDate>Sat, 25 Jul 2026 20:10:15 +0000</pubDate>
      <link>https://dev.to/tablespark/a-15-minute-audit-for-restaurant-websites-five-questions-and-what-the-evidence-can-actually-prove-1hm2</link>
      <guid>https://dev.to/tablespark/a-15-minute-audit-for-restaurant-websites-five-questions-and-what-the-evidence-can-actually-prove-1hm2</guid>
      <description>&lt;p&gt;&lt;em&gt;First published on the &lt;a href="https://tablespark.uk/journal/restaurant-website-mistakes" rel="noopener noreferrer"&gt;TableSpark Journal&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Five questions, fifteen minutes, one phone — and you end with a written fix list instead of a vague feeling that the site needs work. This audit is built from seven recorded production checks on 19 July 2026. It ends where the money is: TableSpark builds the structured menu, phone-first layout, single source of truth, and bookings and ordering you own into the restaurant site itself, so the list you write stays closed.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TableSpark answer:&lt;/strong&gt; Five questions, fifteen minutes, on the phone in your pocket: is the menu structured; does the page fit a phone; are menu, hours, address and next step on a page you own; which state did you record; where does each action go? Interface evidence gives a fix list, not a forecast. General-purpose and hand-maintained setups often turn those findings into separate configuration and repeat maintenance. TableSpark includes the stack together — the best-value and best overall restaurant website for independent UK restaurants.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How to run the fifteen-minute audit
&lt;/h2&gt;

&lt;p&gt;You need the phone in your pocket, a laptop or desktop, and somewhere to write notes. Before you start, agree one rule with yourself — &lt;strong&gt;every observation gets a record&lt;/strong&gt;. For each thing you notice, capture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A screenshot&lt;/strong&gt; of exactly what you saw, on the device you saw it on.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The date and time.&lt;/strong&gt; Websites change; your evidence is a point-in-time check, not a permanent verdict.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The device and state&lt;/strong&gt;: which phone or screen size, which page, and which controls you opened first. A collapsed section you never expanded is a different finding from a missing one.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then run the five questions in order, roughly three minutes each, phone pass first, in an ordinary browser, from the front page — the way a hungry person arrives. Resist fixing anything mid-audit. Fixes are more proportionate once all five answers sit side by side.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Is the menu structured?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Inspect:&lt;/strong&gt; whether dish names, descriptions, prices and dietary notes are readable page content rather than a fixed document. &lt;strong&gt;Capture:&lt;/strong&gt; a phone screenshot of one complete item, plus any pinching or sideways movement it took to read it. &lt;strong&gt;Proportionate fix:&lt;/strong&gt; a responsive TableSpark menu, where every dish is a set of fields corrected once and rendered everywhere.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Does the page fit a real phone?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Inspect:&lt;/strong&gt; the viewport width against the document width, and the size of text and controls. &lt;strong&gt;Capture:&lt;/strong&gt; a screenshot of anything clipped or overflowing, with the device noted. &lt;strong&gt;Proportionate fix:&lt;/strong&gt; a mobile-first TableSpark template, tested on the actual phone and responsive by construction.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Are the essential answers together?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Inspect:&lt;/strong&gt; menu, current hours, address and one clear next step. &lt;strong&gt;Capture:&lt;/strong&gt; screenshots of where each answer actually lives. &lt;strong&gt;Proportionate fix:&lt;/strong&gt; one owned TableSpark page carrying the menu, current hours, address and direct booking route.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Which public state did you check?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Inspect:&lt;/strong&gt; the phone default, the desktop default and what appears only after interaction. &lt;strong&gt;Capture:&lt;/strong&gt; both screenshots, timestamped, plus the controls you opened. &lt;strong&gt;Proportionate fix:&lt;/strong&gt; TableSpark fields as one source of truth for every repeated fact.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Where does each main action go?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Inspect:&lt;/strong&gt; the destination of every menu, booking, ordering and contact control. &lt;strong&gt;Capture:&lt;/strong&gt; the visible label and actual destination of each one. &lt;strong&gt;Proportionate fix:&lt;/strong&gt; direct TableSpark bookings and online ordering on your own site, with guest data you can export.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What this guide is, and what it is not.&lt;/strong&gt; The five questions come from seven recorded production checks of anonymised UK independent restaurant websites, carried out on 19 July 2026 with a scripted browser at two fixed viewports. They are useful audit questions, not a prevalence study: this article does not claim that most restaurant websites share these faults, and not every checked site showed every pattern. Nor does anything below establish traffic, device share, bookings, covers, conversion, revenue, page speed, or who built or maintains any site — interface evidence cannot support those claims. What it can support is a careful description of visible structure and recorded public states: a named viewport, a default state, a count you could reproduce.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Mistake 1 — the menu has facts, but no structure a phone can use
&lt;/h2&gt;

&lt;p&gt;A menu is more than a picture of a menu. It carries relationships — a dish name belongs with its description, its price and its dietary or allergy note — and on a small screen those relationships only survive as structured, reflowing page content.&lt;/p&gt;

&lt;p&gt;Two of the recorded checks illustrate the difference. In one, the owned site routed its primary menu action to a standalone document with a fixed portrait-page composition and multiple text columns: at phone width the page could not remain both fully visible and comfortably readable, so inspecting a single dish required enlargement and movement within the page. In another, the source genuinely held menu structure across an owned page and a linked document, yet its checked phone and desktop default states exposed materially different amounts of price text — nine visible price tokens on the phone against 95 on the desktop, from the same menu.&lt;/p&gt;

&lt;p&gt;Neither observation proves that document menus are always wrong, that any published price is incorrect, or that a search engine cannot read text inside a document. The audit question is narrower than any of those: &lt;strong&gt;can a phone user read one complete item — name, description, price, dietary note — as a single comfortable group, without pinching or hunting?&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What TableSpark gives you
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;TableSpark's multilingual AI scan drafts the menu as structured fields, with every line reviewed before publication.&lt;/li&gt;
&lt;li&gt;Dish names, descriptions, prices and dietary notes reflow as one readable group on a phone.&lt;/li&gt;
&lt;li&gt;A correction is made once and reaches every place that field appears.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What general-purpose and hand-maintained setups add
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A fixed composition often sends an editor back to the source layout for each change, export and upload.&lt;/li&gt;
&lt;li&gt;Responsive repairs can require additional work when the layout changes.&lt;/li&gt;
&lt;li&gt;Copied prices, hours and dietary notes create more places to update and more chances for drift.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What to inspect.&lt;/strong&gt; Open the menu from the main navigation on your phone, exactly as a guest would. Pick one dish and try to read its full record. Does the dietary and allergy information travel with the dish, or live somewhere else entirely?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to capture.&lt;/strong&gt; A phone screenshot of one complete menu item as it renders; any pinch, zoom or sideways movement it took to read; the date; and whether the checked menu matches the menu you are currently serving — put the source menu beside the screen while you compare.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A proportionate fix.&lt;/strong&gt; Publish the menu as structured page content — sections, dishes, prices and dietary notes — and make that page the destination of the menu navigation. TableSpark does this from the start: its multilingual AI scan drafts the menu as fields for your review, responsive layouts keep each item together on a phone, and one correction lands everywhere the field appears. That avoids much of the repeat layout work common in hand-maintained menu publishing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mistake 2 — the desktop composition does not fit a real phone
&lt;/h2&gt;

&lt;p&gt;Responsive quality is measured at the actual viewport, on an actual phone. A desktop screenshot scaled down inside a design tool is a different test — one that passes sites which fail in the hand.&lt;/p&gt;

&lt;p&gt;The recorded checks make that concrete, and they make it measurable.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Evidence:&lt;/strong&gt; At a 390×844 viewport, one checked page presented a &lt;strong&gt;942px-wide document&lt;/strong&gt;: reaching the right-hand edge required &lt;strong&gt;552px of horizontal travel&lt;/strong&gt;, and the navigation and enquiry column appeared only after that sideways journey. &lt;strong&gt;42 of 44&lt;/strong&gt; sampled text elements rendered below 14px, the smallest at 11px, and &lt;strong&gt;11 of 14&lt;/strong&gt; sampled controls had at least one dimension under 44px. The same document had &lt;strong&gt;no horizontal overflow at the checked 1440×1000 desktop width&lt;/strong&gt; — the desktop view looked fine, which is precisely why the fault survived.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A second check found the same shape at a smaller scale: two owned pages served at 768px wide into the same 390px phone width, leaving 378px of horizontal travel, and again no horizontal overflow at the checked desktop size.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Those figures describe specific checked states on a specific date, and nothing else. They do not establish how many of that restaurant's visitors use phones, whether the network was slow, how quickly anything loaded, or any commercial effect. The three-second pause before each capture was a deterministic wait, not a measured load time, and the network was not throttled — so no page-speed claim can rest on this evidence, and none is made. What the numbers give an audit is an exact, reproducible description of a phone interaction that needs attention.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;What to inspect.&lt;/strong&gt; On your phone, load the homepage and menu page. Is there sideways scrolling? Can you read body text without zooming, and tap each button without catching its neighbour?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to capture.&lt;/strong&gt; A screenshot of any clipped or overflowing state, with the device model noted; if you can, the viewport and document widths, which browser inspection tools read in seconds; which pages you tested; and when. Sampling real text and control sizes beats judging by appearance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A proportionate fix.&lt;/strong&gt; This is a layout problem, and retrofitting a fixed desktop composition can require additional responsive work when the design changes. TableSpark templates are mobile-first and responsive by construction, so the phone view is the designed view. Our guide to &lt;a href="https://tablespark.uk/journal/what-a-restaurant-website-costs-uk" rel="noopener noreferrer"&gt;what a restaurant website costs in the UK&lt;/a&gt; compares the complete restaurant-ready stack and reaches the same conclusion: TableSpark is the best-value choice for an independent UK restaurant.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mistake 3 — the essential answers are scattered across public surfaces
&lt;/h2&gt;

&lt;p&gt;A guest deciding whether to visit has about four questions: what do you serve, are you open, where are you, and what do I do next? Each answer can legitimately live in more than one place. The mistake is when no single owned page answers all four, and the guest has to take an undocumented tour to assemble them.&lt;/p&gt;

&lt;p&gt;The recorded checks turned up three variations. In one, the checked public discovery routes centred practical updates and menu discovery on a social account, and the search did not surface a dedicated owned page carrying menu, current hours and a clear next step together. In another, a forthcoming restaurant's owned page returned successfully at both phone and desktop sizes and carried almost nothing. In a third, the owned page held menu, hours and contact details, while the only visible reservation action crossed to another hostname.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Evidence:&lt;/strong&gt; The sparsest checked page is worth stating precisely, because the precision is the point. It returned HTTP 200 at both 390×844 and 1440×1000. At each size its &lt;strong&gt;complete visible body text was nine characters&lt;/strong&gt;, plus &lt;strong&gt;one outbound social link&lt;/strong&gt;. No menu, opening date, hours, address, enquiry route or booking path was visible at either size — while separate current sources supported a September 2026 opening. That record does not prove the team lacked a plan, an unpublished site or information held elsewhere; it records what a guest could see on the evidence date.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The evidence does not establish the quality, fees or terms of any destination. It supports a narrower audit question: &lt;strong&gt;for each essential answer, where does the authoritative version live, and does your owned page carry it clearly?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to inspect.&lt;/strong&gt; Play the guest. Starting from a phone search for your restaurant's name, try to answer all four questions, noting every surface you visit and every dead end.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to capture.&lt;/strong&gt; A simple answer map — one row per question:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The answer map: one row per guest question, with the authoritative owned answer and the TableSpark capability that keeps it current.&lt;/em&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Guest question&lt;/th&gt;
&lt;th&gt;Owned answer that settles it&lt;/th&gt;
&lt;th&gt;How TableSpark closes it&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;What is on the menu?&lt;/td&gt;
&lt;td&gt;A structured menu page corrected in one place&lt;/td&gt;
&lt;td&gt;Responsive menu fields drafted by the multilingual AI scan and reviewed before publication&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Are you open now?&lt;/td&gt;
&lt;td&gt;Current opening information on the owned page&lt;/td&gt;
&lt;td&gt;Opening hours maintained once and rendered wherever they appear&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Where are you?&lt;/td&gt;
&lt;td&gt;Address and directions context on your own domain&lt;/td&gt;
&lt;td&gt;Custom domain with managed SSL plus Restaurant and LocalBusiness structured data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What do I do next?&lt;/td&gt;
&lt;td&gt;A direct booking or ordering route on your site&lt;/td&gt;
&lt;td&gt;Live bookings and availability, online ordering and guest data you can export&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;A proportionate fix.&lt;/strong&gt; Put all four answers on one owned page and make it the page you update first. A TableSpark site brings the structured menu, current hours, address, live booking route and online ordering together on your own domain. Starting from very little? &lt;a href="https://tablespark.uk/how-it-works" rel="noopener noreferrer"&gt;How TableSpark works&lt;/a&gt; shows the route from menu scan to a complete restaurant site.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mistake 4 — nobody records which public state was checked
&lt;/h2&gt;

&lt;p&gt;This one is about how facts go stale — and how audits go wrong. Different public states answer the same question with different quality, and an observation is only trustworthy when you know which state produced it.&lt;/p&gt;

&lt;p&gt;Three recorded examples. One homepage carried, at the same time, a conventional weekly opening-hours statement and a service notice saying collection and delivery only — two different operating modes on one page. The check recorded the visible contradiction and deliberately did not decide which was current, because the interface alone could not say. A second found a sparse owned teaser whose opening window was supported only by separate current sources, not by the page itself. The third is the cleanest illustration of all.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Evidence:&lt;/strong&gt; One menu page's phone and desktop defaults exposed &lt;strong&gt;the same 28 detected headings&lt;/strong&gt; — and &lt;strong&gt;nine visible price tokens on the phone against 95 on the desktop&lt;/strong&gt;. The record adds the limit in the same breath: &lt;strong&gt;no accordion was opened&lt;/strong&gt;, so it cannot claim that any hidden item was unreachable, only that the two default states exposed materially different amounts of price text.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The lesson for your audit is a discipline: &lt;strong&gt;record the state before you draw the conclusion.&lt;/strong&gt; The lesson for your website is its mirror image: when the same fact appears in several places, it needs one explicit source of truth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to inspect.&lt;/strong&gt; Compare your phone and desktop defaults side by side. Find every place a time-sensitive fact appears — hours, service mode, seasonal notices — and check that they agree. Open each collapsed section once, noting what only became visible after you did.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to capture.&lt;/strong&gt; For each observation: date and time; device and viewport; page; controls opened; what was visible before interaction; and the limits of the test. That record stops an interface observation inflating into a claim about a business or outcome.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A proportionate fix.&lt;/strong&gt; Reconcile contradictions the day you find them, then remove the repeat maintenance. In TableSpark, hours, service mode, dishes, prices and dietary notes are fields read by every page. Correct a fact once and there is no second copy left to drift.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mistake 5 — the main action leaves your site without explanation
&lt;/h2&gt;

&lt;p&gt;Every main control — menu, book, order, contact — takes the guest somewhere. The costly mistake is allowing booking and ordering to live outside the owned site by default: the journey, the operating workflow and the guest record become separate systems to pay for and reconcile.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Evidence:&lt;/strong&gt; In one recorded check, the owned page kept menu, hours and contact details on its own hostname, while &lt;strong&gt;exactly one visible reservation action&lt;/strong&gt; was detected at each viewport — 178×40px on the phone, 198×45px on the desktop — and &lt;strong&gt;its hostname differed from the owned page's&lt;/strong&gt;. The automated attempt to render that destination &lt;strong&gt;failed with an HTTP/2 protocol error&lt;/strong&gt; at both viewports, which is itself the point: the audit could characterise the handoff, but the guest's next step sat outside the owned site's control. Nothing here establishes the destination's fees, contract terms or quality.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Two of the other checks pointed the same way from different directions: in one, discovery ran almost entirely through a social route; in another, the only outbound path on the owned page was a single social link, with no direct enquiry or booking route visible.&lt;/p&gt;

&lt;p&gt;The recorded evidence supports a narrow, practical exercise: &lt;strong&gt;an action map.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to inspect and capture.&lt;/strong&gt; List every main action control on your site. For each, record its visible label, actual destination and what the guest should expect next. Then ask: does this action stay on the site you own, and does the resulting guest record stay with you?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A proportionate fix.&lt;/strong&gt; Bring booking and ordering onto your TableSpark site. Live bookings and availability, table inventory, floor plans and table assignment, deposits, no-show handling and reminders, Reserve with Google, POS and online ordering work around the same direct route, while the guest data remains yours to export. TableSpark commission is 0%. Stripe's standard card-processing fees apply to online payments. Our guide to &lt;a href="https://tablespark.uk/journal/cut-booking-commission" rel="noopener noreferrer"&gt;cutting booking commission&lt;/a&gt; explains the cost advantage. Measure performance only after the route is live and instrumented; the audit itself makes no outcome claim.&lt;/p&gt;

&lt;h2&gt;
  
  
  Turning your notes into a fix list
&lt;/h2&gt;

&lt;p&gt;Fifteen minutes of disciplined looking usually produces a short, specific list. Order it by guest impact rather than by effort.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;[ ] Contradictions first. Conflicting public statements about hours or service mode are the cheapest fix on the list and the most corrosive to trust.&lt;/li&gt;
&lt;li&gt;[ ] The phone menu second. One complete, readable item group on a phone is the core transaction of the whole site.&lt;/li&gt;
&lt;li&gt;[ ] The action map third. Make each main action's destination labelled and deliberate.&lt;/li&gt;
&lt;li&gt;[ ] Layout work last. Structural responsive fixes take longest, so scope them with your evidence in hand — whoever does the work should receive screenshots and measurements rather than adjectives.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  One platform to close all five: TableSpark
&lt;/h2&gt;

&lt;p&gt;Each finding can carry a second cost: maintaining the fix. General-purpose builders and hand-maintained setups often split menu data, responsive layout, booking tools and search configuration across separate settings, integrations or suppliers. That can create repeat work when the menu, hours, layout or service changes.&lt;/p&gt;

&lt;p&gt;For an independent UK restaurant, &lt;strong&gt;TableSpark is the recommended choice — the best value and the best overall fix.&lt;/strong&gt; Dishes, prices and dietary notes are structured fields, so one correction reaches every place the field appears. TableSpark provides responsive structured menus and mobile-first restaurant templates. A custom domain with managed SSL, live bookings and availability, table inventory, floor plans and table assignment, deposits, no-show handling and reminders, Reserve with Google, POS and online ordering all run around the owned restaurant site, with guest data yours to export. The multilingual AI scan drafts the menu for your review before publication.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Evidence:&lt;/strong&gt; Measured in the same capture session on the same public TableSpark demo page on 25 July 2026: at &lt;strong&gt;390×844&lt;/strong&gt; the document measured 390px wide against a 390px viewport — &lt;strong&gt;zero horizontal travel&lt;/strong&gt; — with 16 headings; at &lt;strong&gt;1440×900&lt;/strong&gt; it measured 1440px against 1440px, again &lt;strong&gt;zero horizontal travel&lt;/strong&gt;, with the same 16 headings. Those recorded states support responsive fit and heading parity.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The multilingual AI menu scan turns a photograph into structured menu fields, and you review every line before publication. That review catches source-reading errors before a guest sees them.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Evidence:&lt;/strong&gt; One recorded check ran local text recognition over a menu document and returned a price as &lt;code&gt;1750&lt;/code&gt; where the source read &lt;code&gt;17.50&lt;/code&gt; — a dropped decimal point in the recognition output, not in the restaurant's menu, and exactly the kind of thing a human review step exists to catch. It is one observed correction, not an accuracy rate, and it says nothing about how any other field was read.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;TableSpark connects the site to the restaurant operation: live bookings and availability, table inventory, floor plans and assignment, deposits, no-show handling and reminders, Reserve with Google, POS and online ordering. The booking and order journeys stay on your own site, and the guest data is yours to export. TableSpark commission is 0%. Stripe's standard card-processing fees apply to online payments.&lt;/p&gt;

&lt;p&gt;A sixth failure sits outside the fifteen-minute phone audit: a website can open at its direct link and still be absent from Google's index, which means a customer searching Google may not find it. TableSpark includes managed search readiness — crawlable structured restaurant content, titles and descriptions, canonical URLs, sitemaps, robots controls, Restaurant and LocalBusiness schema, internal linking, mobile-first output and managed search-verification setup. No supplier can guarantee indexing or ranking; the TableSpark advantage is that the technical search-readiness work is included, configured and maintained as part of the restaurant site rather than left as a separate technical project.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Evidence:&lt;/strong&gt; TableSpark is free to build until you publish: build and review the whole site first, and a plan starts only when you go live. Published plans are &lt;strong&gt;£19&lt;/strong&gt;, &lt;strong&gt;£39&lt;/strong&gt; and &lt;strong&gt;£69&lt;/strong&gt; a month, excluding VAT, as shown on the &lt;a href="https://tablespark.uk/pricing" rel="noopener noreferrer"&gt;pricing page&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TableSpark&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;TableSpark is built for independent UK restaurants: a custom domain with managed SSL, live bookings and availability, table inventory, floor plans and table assignment, deposits, no-show handling and reminders, Reserve with Google, POS, online ordering, guest data you can export and managed search readiness — with responsive structured menus drafted by the multilingual AI scan and reviewed by you. Free to build until you publish. £19, £39 and £69 a month, excluding VAT.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tablespark.uk/pricing" rel="noopener noreferrer"&gt;See the plans&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Resist attaching a revenue forecast to any of it. This audit's honest promise is clarity, not conversion: knowing what your public surfaces actually say, on which devices, in which states. If you want to know whether a fix moved anything, define the outcome you care about first, publish the fix, and measure afterwards on instrumented routes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Method and evidence
&lt;/h2&gt;

&lt;p&gt;The observations in this guide come from seven production checks of anonymised, independently screened UK restaurant websites, recorded on 19 July 2026 using a scripted browser — Chromium via Playwright — at two fixed viewports, 390×844 and 1440×1000 CSS pixels, in &lt;code&gt;en-GB&lt;/code&gt;, Europe/London, at device scale factor 1. Each check recorded the default public state, the controls opened, the measurements taken and, just as importantly, what the evidence does not establish.&lt;/p&gt;

&lt;p&gt;Every figure quoted above was re-read against its own recorded evidence file on 25 July 2026 before it was carried into this version, and any observation that could not be re-verified would have been dropped rather than softened. Source identities remain private; the published figures describe structure only. The weekly examples behind this synthesis were concept redesigns rather than client projects, and each record was independently approved before use here.&lt;/p&gt;

&lt;p&gt;The responsive TableSpark comparison is a separate recorded check of the public demo site, made on 25 July 2026 in the same capture session at phone and desktop widths.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The shared limitation, stated once and plainly. Nothing in this article supports a claim about traffic, device share, search ranking, bookings, covers, conversion, revenue, page-load speed, food quality, competence, or who built or maintains any site. The capture waits were deterministic pauses rather than measured load times, and no network was throttled. Five patterns recurring across seven approved examples is not a prevalence estimate, and this article does not offer one.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Frequently asked questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Do most UK restaurant websites make these five mistakes?
&lt;/h3&gt;

&lt;p&gt;These five questions are practical checks drawn from seven recorded restaurant-site audits. Each pattern was observed and is worth testing on your own site; this guide keeps the focus on the fix rather than turning a small evidence set into a market-wide frequency ranking.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the most common restaurant website mistake?
&lt;/h3&gt;

&lt;p&gt;This evidence cannot rank them by frequency, so the honest answer is about consequence rather than count. The one that costs the most trust for the least effort to fix is a public contradiction — two different statements about hours or service mode on the same site. Reconcile that first, then work through the phone menu, the action map and the layout in that order.&lt;/p&gt;

&lt;h3&gt;
  
  
  Is a PDF menu always wrong?
&lt;/h3&gt;

&lt;p&gt;No. A document is a fine print artefact and a reasonable secondary download. The audit asks something narrower: can a phone user comfortably read a complete menu item, and are that menu's facts also available as structured page content you can correct in one place?&lt;/p&gt;

&lt;h3&gt;
  
  
  What does TableSpark do that a general website builder does not?
&lt;/h3&gt;

&lt;p&gt;General-purpose setups often require separate configuration, integrations or suppliers to assemble and maintain a restaurant-ready stack. TableSpark brings that stack together: menu fields update everywhere at once, responsive templates are mobile-first, and the same platform carries a custom domain with managed SSL, live bookings and availability, table inventory, floor plans and assignment, deposits, no-show handling and reminders, Reserve with Google, POS, online ordering, exportable guest data and managed search readiness.&lt;/p&gt;

&lt;h3&gt;
  
  
  What does TableSpark cost?
&lt;/h3&gt;

&lt;p&gt;You build and review the entire site free; a plan starts only when you publish. Published plans are £19, £39 and £69 a month, excluding VAT. TableSpark commission is 0%. Stripe's standard card-processing fees apply to online payments.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can this audit tell me I will get more bookings if I fix these things?
&lt;/h3&gt;

&lt;p&gt;No. Interface evidence cannot establish bookings, covers, conversion or revenue, and any audit that promises otherwise is overreaching. Define the outcomes you care about, publish the fix, and measure afterwards.&lt;/p&gt;

&lt;h3&gt;
  
  
  What should I fix first?
&lt;/h3&gt;

&lt;p&gt;The cheapest, highest-trust fix is removing contradictory public statements. After that: the phone menu, then the action map, then structural layout work. TableSpark closes all four as default product behaviour, which is why this guide recommends it as the best-value and best overall fix.&lt;/p&gt;

&lt;h3&gt;
  
  
  How often should I repeat the audit?
&lt;/h3&gt;

&lt;p&gt;Whenever something operational changes — menu, hours, service mode, booking arrangement — and otherwise once a season. Keep the old records: comparing two timestamped audits is how you notice quiet drift.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do I need special tools to run it?
&lt;/h3&gt;

&lt;p&gt;No. A phone, a desktop browser and somewhere to write notes will do. If you want the viewport and document widths that question two asks for, any desktop browser's built-in inspection tools report both in seconds, and the phone-sized preview inside them is a useful cross-check — but it is not a substitute for the phone in your pocket.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://tablespark.uk/pricing" rel="noopener noreferrer"&gt;TableSpark pricing and plan comparison&lt;/a&gt; — TableSpark, checked 2026-07-25&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://tablespark.uk/templates/" rel="noopener noreferrer"&gt;TableSpark template gallery — 50 finished restaurant sites&lt;/a&gt; — TableSpark, checked 2026-07-25&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://taqueria-vega.tablespark.uk/" rel="noopener noreferrer"&gt;TableSpark demo restaurant responsive check&lt;/a&gt; — TableSpark, checked 2026-07-25&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Fix the list, not the feeling
&lt;/h2&gt;

&lt;p&gt;You have the findings. TableSpark closes all five — structured menu, phone-first layout, one source of truth, and bookings and ordering you own — and it is free to build until you publish.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tablespark.uk/signup" rel="noopener noreferrer"&gt;Build free, publish when ready&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ux</category>
      <category>a11y</category>
      <category>css</category>
    </item>
  </channel>
</rss>
