{"id":29,"date":"2024-09-30T06:39:50","date_gmt":"2024-09-30T06:39:50","guid":{"rendered":"https:\/\/itsonmedia.com\/blog\/blunders-to-avoid-in-responsive-websites\/"},"modified":"2026-10-27T15:36:06","modified_gmt":"2026-10-27T15:36:06","slug":"blunders-to-avoid-in-responsive-websites","status":"publish","type":"post","link":"https:\/\/itsonmedia.com\/blog\/blunders-to-avoid-in-responsive-websites\/","title":{"rendered":"12 Responsive Web Design Mistakes (and How to Fix Each One)"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">A responsive website adapts one layout to every screen, from a 320px phone to a 4K monitor. Most sites today are built &#8220;responsive&#8221;, but many still break in small ways that cost visitors, conversions and rankings. Since July 2024, Google crawls and ranks every site using its smartphone crawler, so a broken mobile layout is no longer a design problem only. It is an SEO problem too.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This guide covers the 12 responsive design mistakes we find most often when auditing client sites, with a fix and a test for each one. If you&#8217;d rather have someone check your site for you, our <\/span><a href=\"https:\/\/itsonmedia.com\/web-development\"><span style=\"font-weight: 400;\">web development team<\/span><\/a><span style=\"font-weight: 400;\"> runs responsive audits as part of every rebuild.<\/span><\/p>\n<h2><b>The 12 mistakes at a glance<\/b><\/h2>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Designing desktop-first<\/b><span style=\"font-weight: 400;\"> and squeezing the layout down to mobile.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>A missing or restrictive viewport meta tag<\/b><span style=\"font-weight: 400;\"> that breaks scaling or blocks zoom.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Fixed pixel widths<\/b><span style=\"font-weight: 400;\"> that cause sideways scrolling.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Breakpoints based on devices <\/b><span style=\"font-weight: 400;\">instead of where your content breaks.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Relying only on media queries<\/b><span style=\"font-weight: 400;\"> when a component needs container queries.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Images that don&#8217;t adapt<\/b><span style=\"font-weight: 400;\">: no <\/span><span style=\"font-weight: 400;\">srcset<\/span><span style=\"font-weight: 400;\">, no dimensions, or a lazy-loaded hero image.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Hiding content on mobile<\/b><span style=\"font-weight: 400;\">, which Google may then ignore.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Tap targets that are too small<\/b><span style=\"font-weight: 400;\"> and menus that only open on hover.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Text that doesn&#8217;t scale<\/b><span style=\"font-weight: 400;\">: fixed font sizes, tiny body text, endless line lengths.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Mobile viewport bugs<\/b><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400;\">100vh<\/span><span style=\"font-weight: 400;\"> overflow, oversized sticky headers, keyboards covering forms.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Tables, forms and embeds that overflow<\/b><span style=\"font-weight: 400;\"> the screen.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Ignoring performance and real-device testing<\/b><span style=\"font-weight: 400;\">, so Core Web Vitals fail on real phones.<\/span><\/li>\n<\/ol>\n<h3><b>Quick reference<\/b><\/h3>\n<div style=\"width: 100%; overflow-x: auto; margin: 24px 0;\">\n<table class=\"website-design-development-table\">\n<thead>\n<tr style=\"background-color: #f3f4f6;\">\n<th style=\"border: 1px solid #d1d5db; padding: 14px 16px;\" scope=\"col\">Mistake<\/th>\n<th style=\"border: 1px solid #d1d5db; padding: 14px 16px;\" scope=\"col\">What Users Notice<\/th>\n<th style=\"border: 1px solid #d1d5db; padding: 14px 16px;\" scope=\"col\">Fix<\/th>\n<th style=\"border: 1px solid #d1d5db; padding: 14px 16px;\" scope=\"col\">How to Test<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th style=\"border: 1px solid #d1d5db; padding: 14px 16px;\" scope=\"row\">Desktop-First Design<\/th>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Cramped, cluttered mobile pages.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Design the smallest screen first.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Review the mobile layout before desktop.<\/td>\n<\/tr>\n<tr>\n<th style=\"border: 1px solid #d1d5db; padding: 14px 16px;\" scope=\"row\">Bad Viewport Tag<\/th>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Tiny, zoomed-out pages or pinch-zoom restrictions.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\"><code>width=device-width, initial-scale=1<\/code><\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">View the page source.<\/td>\n<\/tr>\n<tr>\n<th style=\"border: 1px solid #d1d5db; padding: 14px 16px;\" scope=\"row\">Fixed Widths<\/th>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Horizontal scrolling on mobile screens.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\"><code>max-width: 100%<\/code>, <code>min()<\/code>, and<br \/>\n<code>minmax()<\/code>.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Resize the browser to 320px.<\/td>\n<\/tr>\n<tr>\n<th style=\"border: 1px solid #d1d5db; padding: 14px 16px;\" scope=\"row\">Device Breakpoints<\/th>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Layouts break on intermediate screen sizes.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Use content-based breakpoints in <code>em<\/code>.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Drag the browser window slowly from narrow to wide.<\/td>\n<\/tr>\n<tr>\n<th style=\"border: 1px solid #d1d5db; padding: 14px 16px;\" scope=\"row\">Media Queries Only<\/th>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Cards look wrong in sidebars or grids.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Use container queries.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Place the component in a narrow column.<\/td>\n<\/tr>\n<tr>\n<th style=\"border: 1px solid #d1d5db; padding: 14px 16px;\" scope=\"row\">Non-Adaptive Images<\/th>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Slow loading and content shifting.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\"><code>srcset<\/code>, <code>sizes<\/code>, and explicit<br \/>\n<code>width<\/code>\/<code>height<\/code> attributes.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Test with PageSpeed Insights for LCP and CLS.<\/td>\n<\/tr>\n<tr>\n<th style=\"border: 1px solid #d1d5db; padding: 14px 16px;\" scope=\"row\">Hidden Mobile Content<\/th>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Missing information on phones.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Collapse content instead of hiding it.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Compare mobile and desktop content.<\/td>\n<\/tr>\n<tr>\n<th style=\"border: 1px solid #d1d5db; padding: 14px 16px;\" scope=\"row\">Small Tap Targets<\/th>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Mis-taps and menus that won&#8217;t open.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Provide targets of at least 24 \u00d7 24px, ideally 44 \u00d7<br \/>\n44px.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Use the site one-handed on a phone.<\/td>\n<\/tr>\n<tr>\n<th style=\"border: 1px solid #d1d5db; padding: 14px 16px;\" scope=\"row\">Non-Scaling Text<\/th>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Squinting or zooming to read text.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\"><code>rem<\/code>, <code>clamp()<\/code>, and a line<br \/>\nlength of approximately 65ch.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Zoom the browser to 200%.<\/td>\n<\/tr>\n<tr>\n<th style=\"border: 1px solid #d1d5db; padding: 14px 16px;\" scope=\"row\">Viewport Bugs<\/th>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Buttons hidden behind browser bars.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Use <code>svh<\/code> and <code>dvh<\/code> units where<br \/>\nappropriate.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Test on real iOS and Android devices.<\/td>\n<\/tr>\n<tr>\n<th style=\"border: 1px solid #d1d5db; padding: 14px 16px;\" scope=\"row\">Overflowing Tables and Forms<\/th>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Cut-off data and awkward mobile keyboards.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Use scroll wrappers and appropriate input types.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Complete every form on a phone.<\/td>\n<\/tr>\n<tr>\n<th style=\"border: 1px solid #d1d5db; padding: 14px 16px;\" scope=\"row\">No Performance Testing<\/th>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Slow, laggy pages.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Meet Core Web Vitals targets for LCP, INP, and CLS.<\/td>\n<td style=\"border: 1px solid #d1d5db; padding: 14px 16px;\">Review the Core Web Vitals report in Google Search<br \/>\nConsole.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2><b>1. Designing desktop-first<\/b><\/h2>\n<p><b>What it looks like:<\/b><span style=\"font-weight: 400;\"> The site is designed for a wide screen, then every section is stacked and shrunk to fit a phone. The result is long, cluttered pages where the most important action sits five scrolls down.<\/span><\/p>\n<p><b>Why it matters:<\/b><span style=\"font-weight: 400;\"> Just over half of worldwide web traffic now comes from mobile devices (StatCounter, 2026). More importantly for search, Google now indexes the mobile version of your pages. If a section only works well on desktop, that is not the version Google evaluates. This is why responsive design is part of <\/span><a href=\"https:\/\/itsonmedia.com\/seo\"><span style=\"font-weight: 400;\">technical SEO<\/span><\/a><span style=\"font-weight: 400;\">, not just design.<\/span><\/p>\n<p><b>How to fix it:<\/b><span style=\"font-weight: 400;\"> Start the design on the smallest screen. Decide what one thing each page must help a mobile visitor do, put that first, then add layout complexity as the screen widens. In CSS, write your base styles for mobile and use <\/span><span style=\"font-weight: 400;\">min-width<\/span><span style=\"font-weight: 400;\"> media queries to enhance larger screens.<\/span><\/p>\n<div class=\"article-body\">\n<blockquote><p><span style=\"font-weight: 400;\">\/* Base styles = mobile *\/<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">.features { display: grid; gap: 1.5rem; }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">\/* Enhance when there is room *\/<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">@media (min-width: 48em) {<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">\u00a0 .features { grid-template-columns: repeat(3, 1fr); }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">}<\/span><\/p><\/blockquote>\n<\/div>\n<p><b>How to test:<\/b><span style=\"font-weight: 400;\"> Review designs at mobile width first in every design review. If stakeholders only ever see the desktop mockup, mobile will be an afterthought.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-940 size-full\" src=\"https:\/\/itsonmedia.com\/blog\/wp-content\/uploads\/2024\/09\/responsive-mistake-desktop-first.webp.png\" alt=\"Same landing page designed desktop-first versus mobile-first on a phone screen \" width=\"2400\" height=\"1260\" srcset=\"https:\/\/itsonmedia.com\/blog\/wp-content\/uploads\/2024\/09\/responsive-mistake-desktop-first.webp.png 2400w, https:\/\/itsonmedia.com\/blog\/wp-content\/uploads\/2024\/09\/responsive-mistake-desktop-first.webp-300x158.png 300w, https:\/\/itsonmedia.com\/blog\/wp-content\/uploads\/2024\/09\/responsive-mistake-desktop-first.webp-1024x538.png 1024w, https:\/\/itsonmedia.com\/blog\/wp-content\/uploads\/2024\/09\/responsive-mistake-desktop-first.webp-768x403.png 768w, https:\/\/itsonmedia.com\/blog\/wp-content\/uploads\/2024\/09\/responsive-mistake-desktop-first.webp-1536x806.png 1536w, https:\/\/itsonmedia.com\/blog\/wp-content\/uploads\/2024\/09\/responsive-mistake-desktop-first.webp-2048x1075.png 2048w\" sizes=\"auto, (max-width: 2400px) 100vw, 2400px\" \/><\/p>\n<h2><b>2. A missing or restrictive viewport meta tag<\/b><\/h2>\n<p><b>What it looks like:<\/b><span style=\"font-weight: 400;\"> Without the viewport tag, mobile browsers render the page at<br \/>\na desktop width and shrink it, so everything is tiny. A different mistake is adding <\/span><span style=\"font-weight: 400;\">user-scalable=no<\/span><span style=\"font-weight: 400;\"> or <\/span><span style=\"font-weight: 400;\">maximum-scale=1<\/span><span style=\"font-weight: 400;\">, which stops people from zooming into read.<\/span><\/p>\n<p><b>Why it matters:<\/b><span style=\"font-weight: 400;\"> Blocking zoom is an accessibility failure for people with low vision, and it frustrates everyone else.<\/span><\/p>\n<p><b>How to fix it:<\/b><span style=\"font-weight: 400;\"> Use this tag in the <\/span><span style=\"font-weight: 400;\">&lt;head&gt;<\/span><span style=\"font-weight: 400;\"> of every page, and nothing more restrictive:<\/span><\/p>\n<div class=\"article-body\">\n<blockquote><p><span style=\"font-weight: 400;\">&lt;meta name=&#8221;viewport&#8221; content=&#8221;width=device-width,<br \/>\ninitial-scale=1&#8243;&gt;<\/span><\/p><\/blockquote>\n<\/div>\n<p><b>How to test:<\/b><span style=\"font-weight: 400;\"> View the page source and search for &#8220;viewport&#8221;. Then try pinch-zooming on a real phone.<\/span><\/p>\n<h2><b>3. Using fixed pixel widths<\/b><\/h2>\n<p><b>What it looks like:<\/b><span style=\"font-weight: 400;\"> A container set to <\/span><span style=\"font-weight: 400;\">width: 1200px<\/span><span style=\"font-weight: 400;\">, an image set to <\/span><span style=\"font-weight: 400;\">width: 600px<\/span><span style=\"font-weight: 400;\">, or an embedded widget with a hard-coded width. On a phone, these push the page wider than the screen and the whole site scrolls sideways.<\/span><\/p>\n<p><b>Why it matters:<\/b><span style=\"font-weight: 400;\"> Sideways scrolling is one of the fastest ways to make a site feel broken. It also hides content off-screen.<\/span><\/p>\n<p><b>How to fix it:<\/b><span style=\"font-weight: 400;\"> Use relative units and let elements shrink. A few lines cover most cases:<\/span><\/p>\n<div class=\"article-body\">\n<blockquote><p><span style=\"font-weight: 400;\">img, video, iframe { max-width: 100%; height: auto; }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">\/* Container: full width minus a gutter, capped at 70rem *\/<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">.container { width: min(100% &#8211; 2rem, 70rem); margin-inline: auto;<br \/>\n}<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">\/* Grid that fits as many 18rem columns as there is room for *\/<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">.cards {<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">\u00a0 display: grid;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">\u00a0 gap: 1.5rem;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">\u00a0 grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%),<br \/>\n1fr));<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">}<\/span><\/p><\/blockquote>\n<\/div>\n<p><b>How to test:<\/b><span style=\"font-weight: 400;\"> Narrow your browser window to 320px wide. If a horizontal scrollbar appears, open DevTools and look for the element sticking out past the edge.<\/span><\/p>\n<h2><b>4. Setting breakpoints for devices instead of content<\/b><\/h2>\n<p><b>What it looks like:<\/b><span style=\"font-weight: 400;\"> Breakpoints at exactly 375px, 768px and 1024px because those<br \/>\nwere popular iPhone and iPad sizes. The layout looks fine on those three widths and breaks on everything in between, including foldable, small laptops and split-screen windows.<\/span><\/p>\n<p><b>Why it matters:<\/b><span style=\"font-weight: 400;\"> There are thousands of screen sizes in use, and new ones every year. Designing for specific devices means the layout is always out of date.<\/span><\/p>\n<p><b>How to fix it:<\/b><span style=\"font-weight: 400;\"> Add a breakpoint where your content starts to look wrong, not where a device happens to be. Slowly widen the browser and add a breakpoint at the point where lines get too long or cards get too stretched. Writing media queries in <\/span><span style=\"font-weight: 400;\">em<\/span><span style=\"font-weight: 400;\"> also means they respond correctly when users increase their browser&#8217;s text size.<\/span><\/p>\n<div class=\"article-body\">\n<blockquote><p><span style=\"font-weight: 400;\">@media (min-width: 40em) { \/* content needs two columns here *\/<br \/>\n}<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">@media (min-width: 62em) { \/* and three here *\/ }<\/span><\/p><\/blockquote>\n<\/div>\n<p><b>How to test:<\/b><span style=\"font-weight: 400;\"> Drag the browser window slowly from narrow to wide and watch for the moments when the layout looks awkward.<\/span><\/p>\n<h2><b>5. Relying only on media queries for components<\/b><\/h2>\n<p><b>What it looks like:<\/b><span style=\"font-weight: 400;\"> A product card looks great in the main grid but breaks when the same card appears in a narrow sidebar. Media queries only know the size of the screen, not the space a component actually has.<\/span><\/p>\n<p><b>Why it matters:<\/b><span style=\"font-weight: 400;\"> Modern sites, web apps and dashboards reuse the same components in many places. Older advice to &#8220;keep media queries simple&#8221; or &#8220;use a CSS preprocessor&#8221; doesn&#8217;t solve this.<\/span><\/p>\n<p><b>How to fix it:<\/b><span style=\"font-weight: 400;\"> Use container queries, which let a component respond to the width of its parent. They have been supported in all major browsers since 2023 and became Baseline &#8220;widely available&#8221; in<br \/>\nAugust 2025, so they are safe for production.<\/span><\/p>\n<div class=\"article-body\">\n<blockquote><p><span style=\"font-weight: 400;\">.card-list { container-type: inline-size; }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">@container (min-width: 32rem) {<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">\u00a0 .card { display: grid; grid-template-columns: 10rem 1fr; gap: 1rem;<br \/>\n}<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">}<\/span><\/p><\/blockquote>\n<\/div>\n<p><span style=\"font-weight: 400;\">This matters even more in <\/span><a href=\"https:\/\/itsonmedia.com\/blog\/benefits-of-custom-web-application-development-services\/\"><span style=\"font-weight: 400;\">custom web applications<\/span><\/a><span style=\"font-weight: 400;\">, where panels and sidebars resize constantly.<\/span><\/p>\n<p><b>How to test:<\/b><span style=\"font-weight: 400;\"> Drop the component into the narrowest column on your site and check that it still looks intentional.<\/span><\/p>\n<h2><b>6. Using images that don&#8217;t adapt<\/b><\/h2>\n<p><b>What it looks like:<\/b><span style=\"font-weight: 400;\"> A 2,400px hero image sent to every phone. Images without width and height attributes that make the text jump down as they load. A hero image that is lazy-loaded, so the most important visual on the page appears last.<\/span><\/p>\n<p><b>Why it matters:<\/b><span style=\"font-weight: 400;\"> Images are usually the heaviest part of a page. They drive Largest Contentful Paint (how fast the main content appears) and Cumulative Layout Shift (how much the page jumps), two of Google&#8217;s Core Web Vitals.<\/span><\/p>\n<p><b>How to fix it:<\/b><span style=\"font-weight: 400;\"> Serve several sizes and let the browser choose. Always set width and height so the browser reserves space. Load the hero image eagerly, and lazy-load images further down the page.<\/span><\/p>\n<div class=\"article-body\">\n<blockquote><p><span style=\"font-weight: 400;\">&lt;!&#8211; Hero image: load first &#8211;&gt;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">&lt;img src=&#8221;hero-800.webp&#8221;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"> \u00a0 \u00a0 srcset=&#8221;hero-480.webp 480w, hero-800.webp 800w, hero-1400.webp<br \/>\n1400w&#8221;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"> \u00a0 \u00a0 sizes=&#8221;(min-width: 64em) 50vw, 100vw&#8221;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"> \u00a0 \u00a0 width=&#8221;1400&#8243; height=&#8221;788&#8243;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"> \u00a0 \u00a0 fetchpriority=&#8221;high&#8221;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"> \u00a0 \u00a0 alt=&#8221;Describe what the image shows&#8221;&gt;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">&lt;!&#8211; Images below the fold: lazy-load &#8211;&gt;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">&lt;img src=&#8221;team.webp&#8221; width=&#8221;800&#8243; height=&#8221;533&#8243; loading=&#8221;lazy&#8221;<br \/>\nalt=&#8221;&#8230;&#8221;&gt;<\/span><\/p><\/blockquote>\n<\/div>\n<p><span style=\"font-weight: 400;\">Use WebP or AVIF instead of PNG and JPEG where you can. For the SEO side of images, file names and alt text.<\/span><\/p>\n<p><b>How to test:<\/b><span style=\"font-weight: 400;\"> Run the page through PageSpeed Insights on mobile and check the LCP element and any layout shift warnings.<\/span><\/p>\n<h2><b>7. Hiding content on mobile<\/b><\/h2>\n<p><b>What it looks like:<\/b><span style=\"font-weight: 400;\"> To make the mobile page shorter, sections are hidden with <\/span><span style=\"font-weight: 400;\">display: none<\/span><span style=\"font-weight: 400;\">: testimonials, FAQs, product details, sometimes whole paragraphs of copy.<\/span><\/p>\n<p><b>Why it matters:<\/b><span style=\"font-weight: 400;\"> Because Google indexes the mobile version of your site, content that mobile visitors can&#8217;t see may not count toward your rankings. Hidden elements can also still download, so the page gets no faster. And mobile visitors often want the same detail desktop visitors do.<\/span><\/p>\n<p><b>How to fix it:<\/b><span style=\"font-weight: 400;\"> Keep the same content on every screen and change how it is presented. Use accordions, tabs or &#8220;show more&#8221; toggles to collapse long sections. The native <\/span><span style=\"font-weight: 400;\">&lt;details&gt;<\/span><span style=\"font-weight: 400;\"> element is accessible and needs no JavaScript:<\/span><\/p>\n<div class=\"article-body\">\n<blockquote><p><span style=\"font-weight: 400;\">&lt;details&gt;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">\u00a0 &lt;summary&gt;Technical specifications&lt;\/summary&gt;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">\u00a0 &lt;p&gt;&#8230;&lt;\/p&gt;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">&lt;\/details&gt;<\/span><\/p><\/blockquote>\n<\/div>\n<p><span style=\"font-weight: 400;\">Clear, complete content on every device also makes your pages easier for AI search engines to quote, which we cover in <\/span><a href=\"https:\/\/itsonmedia.com\/blog\/ways-you-can-enhance-your-website-for-geo\/\"><span style=\"font-weight: 400;\">how to enhance your website for the GEO era<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><b>How to test:<\/b><span style=\"font-weight: 400;\"> Compare the mobile and desktop versions of your key pages side by side. Every heading and key fact should appear on both.<\/span><\/p>\n<h2><b>8. Making tap targets too small and relying on hover<\/b><\/h2>\n<p><b>What it looks like:<\/b><span style=\"font-weight: 400;\"> Tiny close buttons, social icons packed tightly together, and dropdown menus that only open when a mouse hovers over them. On a touchscreen there is no hover, so those menus are hard or impossible to open.<\/span><\/p>\n<p><b>Why it matters:<\/b><span style=\"font-weight: 400;\"> WCAG 2.2, the current accessibility standard, requires interactive targets of at least 24\u00d724 CSS pixels at level AA, unless they have enough space around them or sit inside a sentence. Apple and Google&#8217;s own design guidelines recommend larger targets, around 44\u201348px.<\/span><\/p>\n<p><b>How to fix it:<\/b><span style=\"font-weight: 400;\"> Give icon buttons a minimum size and enough spacing. Make menus open on tap with a real button, and only add hover behavior for devices that support it.<\/span><\/p>\n<div class=\"article-body\">\n<blockquote><p><span style=\"font-weight: 400;\">.icon-button { min-width: 44px; min-height: 44px; }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">\/* Only use hover effects where a mouse is available *\/<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">@media (hover: hover) {<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">\u00a0 .nav-item:hover &gt; .submenu { display: block; }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">}<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&lt;button aria-expanded=&#8221;false&#8221;<br \/>\naria-controls=&#8221;services-menu&#8221;&gt;Services&lt;\/button&gt;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">&lt;ul id=&#8221;services-menu&#8221; hidden&gt;&#8230;&lt;\/ul&gt;<\/span><\/p><\/blockquote>\n<\/div>\n<p><b>How to test:<\/b><span style=\"font-weight: 400;\"> Use your site one-handed on a phone. Open every menu and tap every icon. Any mis-tap is a target that needs to be bigger.<\/span><\/p>\n<h2><b>9. Using text that doesn&#8217;t scale<\/b><\/h2>\n<p><b>What it looks like:<\/b><span style=\"font-weight: 400;\"> Body text fixed at 14px, headlines so large on mobile that one word fills a line, or paragraphs that stretch across a wide monitor so the eye loses its place.<\/span><\/p>\n<p><b>Why it matters:<\/b><span style=\"font-weight: 400;\"> If people have to zoom or squint, they leave. Readability also affects how long people stay on the page.<\/span><\/p>\n<p><b>How to fix it:<\/b><span style=\"font-weight: 400;\"> Use <\/span><span style=\"font-weight: 400;\">rem<\/span><span style=\"font-weight: 400;\"> units so text respects the user&#8217;s browser settings, and <\/span><span style=\"font-weight: 400;\">clamp()<\/span><span style=\"font-weight: 400;\"> so sizes scale smoothly between a minimum and maximum. Limit line length to around 65 characters.<\/span><\/p>\n<div class=\"article-body\">\n<blockquote><p><span style=\"font-weight: 400;\">body { font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem); line-height:<br \/>\n1.6;<br \/>\n}<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">h1 \u00a0 { font-size: clamp(2rem, 1.5rem + 2.5vw, 3.5rem); line-height: 1.15;<br \/>\n}<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">.article-body { max-width: 65ch; }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">\/* Keep form fields at 16px or larger to stop iOS zooming in on focus<br \/>\n*\/<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">input, select, textarea { font-size: max(1rem, 16px); }<\/span><\/p><\/blockquote>\n<\/div>\n<p><b>How to test:<\/b><span style=\"font-weight: 400;\"> Zoom your browser to 200%. The text should get bigger without anything overlapping or being cut off.<\/span><\/p>\n<h2><b>10. Ignoring mobile viewport bugs<\/b><\/h2>\n<p><b>What it looks like:<\/b><span style=\"font-weight: 400;\"> A &#8220;full-screen&#8221; hero set to <\/span><span style=\"font-weight: 400;\">100vh<\/span><span style=\"font-weight: 400;\"> where the call-to-action button sits hidden<br \/>\nbehind the phone browser&#8217;s address bar. A sticky header that takes up a quarter of a small screen. A form where the on-screen keyboard covers the field you&#8217;re typing in.<\/span><\/p>\n<p><b>Why it matters:<\/b><span style=\"font-weight: 400;\"> These bugs hit the most important parts of a page: the first screen and the forms that generate leads.<\/span><\/p>\n<p><b>How to fix it:<\/b><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Use the newer viewport units. <\/span><span style=\"font-weight: 400;\">svh<\/span><span style=\"font-weight: 400;\"> is the height with the browser&#8217;s toolbars showing, <\/span><span style=\"font-weight: 400;\">dvh<\/span><span style=\"font-weight: 400;\"> adjusts as<br \/>\nthey appear and disappear. Keep <\/span><span style=\"font-weight: 400;\">vh <\/span><span style=\"font-weight: 400;\">as a fallback for old browsers.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Keep sticky headers short on mobile, or hide them on scroll down and show them on scroll up.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Add <\/span><span style=\"font-weight: 400;\">scroll-margin-top<\/span><span style=\"font-weight: 400;\"> so links to headings don&#8217;t land underneath the sticky header.<\/span><\/li>\n<\/ul>\n<div class=\"article-body\">\n<blockquote><p><span style=\"font-weight: 400;\">.hero { min-height: 100vh; min-height: 100svh; }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">h2[id] { scroll-margin-top: 5rem; }<\/span><\/p><\/blockquote>\n<\/div>\n<p><b>How to test:<\/b><span style=\"font-weight: 400;\"> Test on a real iPhone and a real Android phone. These bugs often don&#8217;t show up in desktop browser emulators.<\/span><\/p>\n<h2><b>11. Letting tables, forms and embeds overflow<\/b><\/h2>\n<p><b>What it looks like:<\/b><span style=\"font-weight: 400;\"> Pricing or comparison tables that are wider than the phone screen. Videos and maps embedded at a fixed size. Forms that bring up the wrong keyboard, such as letters for a phone number field.<\/span><\/p>\n<p><b>Why it matters:<\/b><span style=\"font-weight: 400;\"> Tables and forms are where visitors compare and convert. Friction here directly costs leads and sales.<\/span><\/p>\n<p><b>How to fix it:<\/b><\/p>\n<div class=\"article-body\">\n<blockquote><p><span style=\"font-weight: 400;\">\/* Let wide tables scroll inside their own box, not the whole page<br \/>\n*\/<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">.table-wrap { overflow-x: auto; }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">\/* Responsive video and map embeds *\/<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">.embed { width: 100%; aspect-ratio: 16 \/ 9; }<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">.embed iframe { width: 100%; height: 100%; border: 0; }<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&lt;!&#8211; The right keyboard and autofill for each field &#8211;&gt;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">&lt;input type=&#8221;email&#8221; name=&#8221;email&#8221; autocomplete=&#8221;email&#8221;&gt;<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><span style=\"font-weight: 400;\">&lt;input type=&#8221;tel&#8221; name=&#8221;phone&#8221; autocomplete=&#8221;tel&#8221;&gt;<\/span><\/p><\/blockquote>\n<\/div>\n<p><span style=\"font-weight: 400;\">For short tables, consider stacking each row as a card on small screens instead.<\/span><\/p>\n<p><b>How to test:<\/b><span style=\"font-weight: 400;\"> Fill out every form on your site from start to finish on a phone,<br \/>\nincluding error messages.<\/span><\/p>\n<h2><b>12. Skipping performance checks and real-device testing<\/b><\/h2>\n<p><b>What it looks like:<\/b><span style=\"font-weight: 400;\"> The site was only ever checked in a desktop browser&#8217;s device mode on a fast office connection. On a mid-range phone over mobile data, it loads slowly and lags when people tap.<\/span><\/p>\n<p><b>Why it matters:<\/b><span style=\"font-weight: 400;\"> Google measures page experience with three Core Web Vitals, using data from real visitors:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Largest Contentful Paint (LCP)<\/b><span style=\"font-weight: 400;\">: the main content should appear within 2.5 seconds.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Interaction to Next Paint (INP)<\/b><span style=\"font-weight: 400;\">: the page should respond to taps within 200 milliseconds. INP replaced First Input Delay in March 2024.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Cumulative Layout Shift (CLS)<\/b><span style=\"font-weight: 400;\">: the layout should stay stable, with a score of 0.1 or less.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">A slow, jumpy mobile site loses people before they read a word, which is one of the <\/span><a href=\"https:\/\/itsonmedia.com\/blog\/reasons-your-bad-website-is-driving-customers-away\/\"><span style=\"font-weight: 400;\">reasons a bad website drives customers away<\/span><\/a><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><b>How to fix it:<\/b><span style=\"font-weight: 400;\"> Cut unused scripts and plugins, defer non-critical JavaScript, compress images, use caching and a CDN, and keep third-party widgets to a minimum. Most INP problems come from heavy<br \/>\nJavaScript running when someone taps.<\/span><\/p>\n<p><b>How to test:<\/b><span style=\"font-weight: 400;\"> Build a testing routine that includes:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">At least one real iPhone and one mid-range Android phone<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Portrait and landscape orientation<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">320px width and 200% browser zoom, both accessibility requirements<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Chrome DevTools device mode with network and CPU throttling<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">PageSpeed Insights for individual pages<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The Core Web Vitals report in Google Search Console for real-user data across the whole site.<\/span><\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-939 size-full alignleft\" src=\"https:\/\/itsonmedia.com\/blog\/wp-content\/uploads\/2024\/09\/pagespeed-insights-core-web-vitals-mobile.webp.png\" alt=\"PageSpeed Insights mobile report showing LCP, INP and CLS scores\" width=\"2400\" height=\"1260\" srcset=\"https:\/\/itsonmedia.com\/blog\/wp-content\/uploads\/2024\/09\/pagespeed-insights-core-web-vitals-mobile.webp.png 2400w, https:\/\/itsonmedia.com\/blog\/wp-content\/uploads\/2024\/09\/pagespeed-insights-core-web-vitals-mobile.webp-300x158.png 300w, https:\/\/itsonmedia.com\/blog\/wp-content\/uploads\/2024\/09\/pagespeed-insights-core-web-vitals-mobile.webp-1024x538.png 1024w, https:\/\/itsonmedia.com\/blog\/wp-content\/uploads\/2024\/09\/pagespeed-insights-core-web-vitals-mobile.webp-768x403.png 768w, https:\/\/itsonmedia.com\/blog\/wp-content\/uploads\/2024\/09\/pagespeed-insights-core-web-vitals-mobile.webp-1536x806.png 1536w, https:\/\/itsonmedia.com\/blog\/wp-content\/uploads\/2024\/09\/pagespeed-insights-core-web-vitals-mobile.webp-2048x1075.png 2048w\" sizes=\"auto, (max-width: 2400px) 100vw, 2400px\" \/><\/p>\n<h2><b>Responsive design checklist<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Before launching a new site or redesign, check that:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The viewport meta tag is present and allows zoom<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">No page scrolls sideways at 320px wide<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Breakpoints are based on content, and reusable components use container queries<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Images use <\/span><span style=\"font-weight: 400;\">srcset<\/span><span style=\"font-weight: 400;\">, have width and height, and the hero image isn&#8217;t lazy-loaded<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Mobile pages have the same content as desktop<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Tap targets are at least 24\u00d724px and menus open on tap<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Text uses <\/span><span style=\"font-weight: 400;\">rem<\/span><span style=\"font-weight: 400;\">, scales with <\/span><span style=\"font-weight: 400;\">clamp()<\/span><span style=\"font-weight: 400;\">, and reads well at 200% zoom<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">The first screen and forms work on real iOS and Android devices<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Tables, embeds and forms fit the screen and use the right keyboards<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">LCP, INP and CLS are in the &#8220;good&#8221; range in Search Console<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Getting these right is a front-end job. If you&#8217;re deciding whether to handle it in-house, our overview of <\/span><a href=\"https:\/\/itsonmedia.com\/blog\/what-are-front-end-development-services\/\"><span style=\"font-weight: 400;\">front end development services<\/span><\/a><span style=\"font-weight: 400;\"> explains what&#8217;s involved, and <\/span><a href=\"https:\/\/itsonmedia.com\/blog\/website-design-development-is-vital\/\"><span style=\"font-weight: 400;\">why website design and development matter for business<\/span><\/a><span style=\"font-weight: 400;\"> covers the bigger picture.<\/span><\/p>\n<h2><b>Frequently asked questions<\/b><\/h2>\n<h3><b>What is the most common responsive design mistake?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Designing desktop-first. Most of the other problems on this list, such as hidden content, cramped tap targets and slow mobile pages, come from treating mobile as a smaller copy of the desktop site instead of designing for it first.<\/span><\/p>\n<h3><b>Does responsive design affect SEO?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Yes. Google indexes and ranks the mobile version of your pages, so content and usability problems on mobile affect rankings directly. Responsive design also keeps one URL per page, which avoids the duplicate content and split links that separate mobile sites cause.<\/span><\/p>\n<h3><b>What breakpoints should I use for responsive design?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">There is no fixed list. Start with mobile styles, then widen the browser and add a breakpoint wherever the content starts to look wrong. Many sites end up with two or three breakpoints, often around 40em, 62em and 80em, but your content should decide.<\/span><\/p>\n<h3><b>What is the difference between responsive and adaptive design?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">A responsive design uses one flexible layout that adjusts continuously to any screen width. An adaptive design serves a few fixed layouts built for specific screen sizes. Responsive design is easier to maintain and handles new devices better, which is why it is the standard approach today.<\/span><\/p>\n<h3><b>How do I check if my website is responsive?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Resize your browser from narrow to wide, use Chrome DevTools device mode, and test on at<br \/>\nleast one real iPhone and Android phone. Then check the Core Web Vitals report in Google Search Console to see how real mobile visitors experience your site. If your users need features a website can&#8217;t offer, such as offline access or push notifications, a <\/span><a href=\"https:\/\/itsonmedia.com\/mobile-apps\"><span style=\"font-weight: 400;\">mobile app<\/span><\/a><span style=\"font-weight: 400;\"> may be the better route.<\/span><\/p>\n<h2><b>Get a responsive audit of your website<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Responsive problems are easy to miss when you only look at your own site on your own phone. Our team tests sites across real devices, fixes layout and performance issues, and rebuilds where it makes more sense than patching. See examples in our <\/span><a href=\"https:\/\/itsonmedia.com\/case-studies\"><span style=\"font-weight: 400;\">case studies<\/span><\/a><span style=\"font-weight: 400;\">, or <\/span><a href=\"https:\/\/itsonmedia.com\/contact\"><span style=\"font-weight: 400;\">tell us about your website<\/span><\/a><span style=\"font-weight: 400;\"> and we&#8217;ll get back to you within one business day.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A responsive website adapts one layout to every screen, from a 320px phone to a 4K monitor. Most sites today are built &#8220;responsive&#8221;, but many still break in\u2026<\/p>\n","protected":false},"author":2,"featured_media":937,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_iom_schema_disable":false,"_iom_schema_article_type":"","_iom_schema_headline":"","_iom_schema_speakable":"","_iom_schema_reviewed_by":0,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-29","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web-development"],"_links":{"self":[{"href":"https:\/\/itsonmedia.com\/blog\/wp-json\/wp\/v2\/posts\/29","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itsonmedia.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itsonmedia.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itsonmedia.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/itsonmedia.com\/blog\/wp-json\/wp\/v2\/comments?post=29"}],"version-history":[{"count":20,"href":"https:\/\/itsonmedia.com\/blog\/wp-json\/wp\/v2\/posts\/29\/revisions"}],"predecessor-version":[{"id":970,"href":"https:\/\/itsonmedia.com\/blog\/wp-json\/wp\/v2\/posts\/29\/revisions\/970"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itsonmedia.com\/blog\/wp-json\/wp\/v2\/media\/937"}],"wp:attachment":[{"href":"https:\/\/itsonmedia.com\/blog\/wp-json\/wp\/v2\/media?parent=29"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itsonmedia.com\/blog\/wp-json\/wp\/v2\/categories?post=29"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itsonmedia.com\/blog\/wp-json\/wp\/v2\/tags?post=29"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}