SEO for a mobile app: the stores, and the website that still ranks
You win installs two ways. First inside the App Store and Google Play. Then on the open web where your site still ranks for the brand, the category and the jobs your app does. Here is the plan you can ship yourself.
By Théophile Louvart, founder of Porteur · Updated 14 September 2026 · Markdown
What to rank for and where
Your app has two search surfaces. Store search for installs. Google search for the brand, the category and task queries. You need both.
- Brand: people type your name. Your homepage and /pricing must rank.
- Category: people type "calendar apps" or "messaging apps". Have a page like /calendar-app that states what you are and who it is for.
- Jobs: people type "how to share a calendar on iPhone" or "sync calendar with Outlook". Ship guides under /guides/ that answer a task cleanly.
- Support: people type error strings and settings. Put one page per problem under /support/ with the exact error in the heading.
- Comparisons and alternatives: "X vs Y" and "Y alternatives" convert. Publish them early.
Map each query to one page. Example: yourapp.com for the brand, /calendar-app for the category, /guides/share-calendar for the job, /support/ios-sync-error-27 for the error, /compare/yourapp-vs-google-calendar for the comparison.
ASO in the App Store and Google Play
Do the store work first. The fields are short and every character counts. Your screenshots and first lines decide the install.
| Store | Indexed for search | Character limits | Notes |
|---|---|---|---|
| App Store (iOS) | Name, subtitle, keyword field | Name 30, subtitle 30, keywords 100 | Description not indexed for search. Ratings and retention weigh. |
| Google Play (Android) | Title, short description, long description | Title 30, short 80 | Long description is indexed. Ratings, downloads and retention weigh. |
- Put the core category word in the iOS name or subtitle and in the Google Play title.
- Use the iOS keyword field for variants and jobs, separated by commas, no spaces.
- Front-load the Google Play short description with the job. Example: "Share family calendars, plan events, sync with Outlook".
- Localise, but only where you support the locale well.
- Ship clean screenshots with captions that read the job, not fluff. Add a short video only if it proves the job fast.
- Ask happy users for ratings in context. Do not prompt on first open.
Buy Apple Search Ads or Google Ads on strong store searches only when you can afford them. They run on store queries and can fill gaps while ASO matures.
Your website that still ranks
Searchers still hit Google for discovery and proof. Your site earns the brand, the category and the jobs. Design the structure once and add pages as you ship features.
Homepage for the brand
Write the first sentence like this: "YourApp is a calendar app for families." Add a short feature list and the trust signals you have. Link to the App Store and Google Play. Add a smart app banner, covered below.
A category page
Create /calendar-app or /messaging-app with a clear definition, who it helps and a comparison table against the incumbent. Link to /compare pages.
Jobs pages under /guides/
One job per page. The heading is the task, example: "Share a calendar with non iPhone users". Give the answer first, with steps and screenshots.
Comparisons and alternatives
Publish /compare/yourapp-vs-google-calendar and /alternatives/google-calendar-alternatives. Be fair, name what you do and what you do not do.
Pricing and FAQs
If you charge, keep /pricing short. Add an FAQ with limits and platforms you support. Assistants cite this page.
Mark up the homepage or category page with SoftwareApplication schema. List operatingSystem, applicationCategory, offers if you sell, and sameAs links to the store listings. Use JSON LD.
A fixed page looks like this: /calendar-app with a 60 character title, a short first paragraph, a few feature bullets, a comparison table and clear links to install.
Support pages that answer how to and errors
Support content earns daily search. People type the task in plain words and paste errors. Give each problem its own URL and the exact string in the h1.
- Put the answer first. Then steps. Then notes on platforms and versions.
- Keep versions current. Add a note when steps changed.
- Add internal links back to the related guide and the install links.
- Add a short "Still stuck?" with your support email.
- Add a last updated date so assistants quote the page with context.
Examples: /support/ios-notifications-not-working, /support/google-login-error-403, /support/how-to-export-events-csv. Use the exact phone words people type.
Write pages assistants can cite
Generative engine optimisation is now part of launch. Search backed assistants cite pages that answer the question in clear structure. They do not have a submit form. They crawl and pick what reads cleanly.
- Use the task as the h1 on guides and support. Start with the answer and a short list or table.
- Keep product and feature names consistent across pages. Assistants match strings.
- Publish a short "What it does and does not do" page with prices and limits. Assistants quote it.
- Let the answering crawlers in robots.txt. Do not block Googlebot, Bingbot, OAI-SearchBot, Claude-SearchBot or PerplexityBot.
- Get listed on trusted roundups in your category. Assistants cite those lists.
Measure it by asking assistants the buyer questions you care about. Note who is named and which pages they cite. Adjust your pages to answer better and to match the cited formats.
Landing page SEO for an app
Your / and your /calendar-app need clean on page work. You have about 60 characters for the title and one short meta description to earn the click.
- Title: "YourApp, a calendar app for families". Put the category word once.
- Meta description: one sentence that names the job and platforms.
- H1 repeats the plain definition. Keep it short.
- Above the fold: a sentence, the store buttons, and a product shot or short loop.
- Add FAQs that match People Also Ask style questions you see for your category.
- Internal links to /guides/, /compare/ and /support/.
- Add SoftwareApplication schema and Organization schema, with sameAs to the stores and socials.
Speed and mobile experience
Your audience is on phones. Hit Core Web Vitals and keep scripts light. Test like a user on a mid range phone and flaky 4G.
- Largest Contentful Paint: good up to 2.5 seconds. Optimise your hero image and fonts.
- Cumulative Layout Shift: good up to 0.1. Reserve space for screenshots and banners.
- Interaction to Next Paint: good up to 200 ms. Keep third party scripts minimal.
- Use next/image or your platform’s optimiser. Serve WebP or AVIF where it works.
- Lazy load below the fold screenshots.
- Minimise animation in the hero. Heavy effects tank INP.
PageSpeed Insights shows real user data when you have enough traffic, plus a Lighthouse run on a throttled phone profile. Scores vary between runs. Fix what harms the field data first.
Links and first mentions for a new app
Your category is crowded. Earn a few relevant links and mentions early so Google trusts the site and the store pages. Aim small and specific.
- Launch on Product Hunt, Hacker News and Indie Hackers for the first links and quotes.
- Submit to category directories that rank on "best X apps" where they fit.
- Offer a short case or story to small blogs read by your buyers.
- Ask partner apps for an integrations listing with a link to your /integrations page, even if it is one partner at first.
- List your app on AlternativeTo and similar sites with clean descriptions.
Measure and iterate in 28 day loops
Check store impressions and installs weekly. Check Search Console for your web pages every 28 days. Add or adjust one or two pages per loop. Keep it tight.
Queries
In the Search Console performance report, read the queries that already show your site. Group by brand, category, jobs, support.
Pages
Sort pages by clicks and impressions. Find pages with impressions but weak clicks. Fix the title and meta description to earn the click.
Gaps
List jobs where rivals show and you do not. Ship a guide for each, one a week.
Speed
Open the Core Web Vitals report. Fix any URLs in the poor bucket first.
Questions
Start with ASO. Name and subtitle on iOS, title and short description on Google Play. Then ship a one page site with the brand, the category sentence, store buttons, and a smart app banner. Add /support/ when the first issues appear.
A homepage for the brand, a category page, jobs guides under /guides/, comparisons and alternatives, a pricing page if you charge, and a /support/ area. Each page answers one intent and links to the others.
You need evergreen guides that answer tasks, not news posts. One page per job works better than a generic blog roll. Link guides to the product pages and the stores.
Write pages that answer the question in the first lines with clear structure and consistent names. Allow OAI-SearchBot, Bingbot and Googlebot. Get listed on the category roundups assistants already cite. There is no submit form.
As of 2026, Apple indexes the name, subtitle and the keywords field, not the description. Google indexes the title, short description and the long description. Ratings and retention also weigh.
No. Let them read the page they came for. Offer a smart app banner on iOS and clear store buttons. Use app links so existing users open the app without losing their place.
Sources
Check my site, free
Paste your homepage URL and get a free check in about thirty seconds: we read your site, the searches around it and the rivals on them, and show three findings.
- Free check, no card
- Read-only, your own accounts
- Readable by your agent
Read next
- GuideApp Store Optimization for a product: search inside the stores
- GuideLanding page SEO: one page, one search, one promise
- GuideHow to use Google Search Console in ten minutes a week
- GuideThe Search Console performance report, column by column
- GuideSoftwareApplication schema for a SaaS: an example that validates
- GuideCore Web Vitals for a product site: the three numbers
- GlossaryAMP
- GuideSEO for sites built with AI app builders: Lovable, Bolt, v0 and Replit