<?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: ahfu168</title>
    <description>The latest articles on DEV Community by ahfu168 (@_44474bf1334efd85513fb).</description>
    <link>https://dev.to/_44474bf1334efd85513fb</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%2F4074414%2F54b5fdab-3dbd-4245-a19c-05e95d0ea69c.jpg</url>
      <title>DEV Community: ahfu168</title>
      <link>https://dev.to/_44474bf1334efd85513fb</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/_44474bf1334efd85513fb"/>
    <language>en</language>
    <item>
      <title>How I’m Building SEO for a Brand Nobody Searches For Yet</title>
      <dc:creator>ahfu168</dc:creator>
      <pubDate>Wed, 19 Aug 2026 08:23:44 +0000</pubDate>
      <link>https://dev.to/_44474bf1334efd85513fb/how-im-building-seo-for-a-brand-nobody-searches-for-yet-15ad</link>
      <guid>https://dev.to/_44474bf1334efd85513fb/how-im-building-seo-for-a-brand-nobody-searches-for-yet-15ad</guid>
      <description>&lt;p&gt;A few days ago, I wrote about migrating an Android app from &lt;strong&gt;Song Flow&lt;/strong&gt; to a new brand: &lt;strong&gt;MiraYola&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That post focused mostly on infrastructure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;keeping the Android package name stable&lt;/li&gt;
&lt;li&gt;moving to a new domain&lt;/li&gt;
&lt;li&gt;fixing redirects&lt;/li&gt;
&lt;li&gt;setting canonical URLs&lt;/li&gt;
&lt;li&gt;handling App Links&lt;/li&gt;
&lt;li&gt;keeping old shared links alive&lt;/li&gt;
&lt;li&gt;waiting for search engines and third-party systems to catch up&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once most of that was working, I ran into a different problem.&lt;/p&gt;

&lt;p&gt;The migration could be technically correct, but almost nobody was searching for the new brand.&lt;/p&gt;

&lt;p&gt;That changes the SEO problem completely.&lt;/p&gt;

&lt;p&gt;If people already search for your company, SEO can focus on capturing existing demand.&lt;/p&gt;

&lt;p&gt;But what if the brand is new enough that there is almost no branded demand to capture?&lt;/p&gt;

&lt;p&gt;That is where I am with MiraYola right now.&lt;/p&gt;

&lt;p&gt;And I definitely do not have a success story yet.&lt;/p&gt;

&lt;p&gt;What I have instead is an experiment:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I gradually create a consistent search identity for a new product by making the website, app stores, developer profiles, social channels, and external content all reinforce the same brand and product category?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This post is about what I have tried so far, what is beginning to appear, what still is not working, and how my thinking about SEO has changed.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. The first SEO problem was not ranking
&lt;/h2&gt;

&lt;p&gt;My original instinct was fairly conventional.&lt;/p&gt;

&lt;p&gt;MiraYola is an AI music product, so I started thinking about keywords such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI Music Maker
AI Song Generator
Text to Song
Lyrics to Song
AI Remix Generator
AI Music Video Generator
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those are useful terms.&lt;/p&gt;

&lt;p&gt;But there was a more basic problem.&lt;/p&gt;

&lt;p&gt;Google first had to understand:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;What is MiraYola?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Is it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a website?&lt;/li&gt;
&lt;li&gt;an Android app?&lt;/li&gt;
&lt;li&gt;an iOS app?&lt;/li&gt;
&lt;li&gt;an AI music generator?&lt;/li&gt;
&lt;li&gt;a music discovery product?&lt;/li&gt;
&lt;li&gt;a renamed version of Song Flow?&lt;/li&gt;
&lt;li&gt;a random word appearing on a few unrelated pages?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a completely new brand, I think this question comes before most traditional keyword work.&lt;/p&gt;

&lt;p&gt;So instead of thinking only about pages and rankings, I started thinking about &lt;strong&gt;identity consistency&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. The model became a matrix instead of a website
&lt;/h2&gt;

&lt;p&gt;At first, I thought of SEO mainly as something happening on:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mirayola.huoji.app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now I think about MiraYola more like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                    MiraYola
                       |
        --------------------------------
        |              |               |
     Website       App Stores       Content
        |              |               |
    Feature Pages   Google Play     Articles
    Live Rooms      App Store       Product Notes
    Music Plaza
        |
        --------------------------------
        |                              |
     Developer                      Social
     Identity                       Identity
        |                              |
     GitHub                        YouTube
     GitHub Pages                  Instagram
                                  X
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;None of these surfaces is individually very powerful.&lt;/p&gt;

&lt;p&gt;The idea is that they should gradually tell the same story.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MiraYola
→ AI Music Maker
→ AI Song Generator
→ Create Music
→ Discover AI Music
→ Live AI Music Experiences
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If Google encounters the same relationship across multiple independent surfaces, my hope is that the brand becomes easier to understand over time.&lt;/p&gt;

&lt;p&gt;I am treating this as an &lt;strong&gt;entity-building experiment&lt;/strong&gt;, not just a backlink campaign.&lt;/p&gt;




&lt;h2&gt;
  
  
  3. I started by making the product identity boringly consistent
&lt;/h2&gt;

&lt;p&gt;This sounds simple, but it was surprisingly easy to get wrong.&lt;/p&gt;

&lt;p&gt;After the rename, there were many possible descriptions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MiraYola
MiraYola AI Music
MiraYola AI Music Maker
MiraYola Music Exploration Space
MiraYola AI Song Generator
Song Flow / MiraYola
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Using all of them everywhere would create noise.&lt;/p&gt;

&lt;p&gt;So I gradually moved toward one primary relationship:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Brand:
MiraYola

Primary category:
AI Music Maker

Supporting concepts:
AI Song Generator
AI Music Creation
AI Remix
AI Music Video
AI Music Discovery
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is why the store name is now close to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MiraYola: AI Music Maker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The website uses the same relationship.&lt;/p&gt;

&lt;p&gt;My developer site describes MiraYola similarly.&lt;/p&gt;

&lt;p&gt;The social profiles are moving in the same direction.&lt;/p&gt;

&lt;p&gt;This is not sophisticated SEO.&lt;/p&gt;

&lt;p&gt;It is mostly consistency.&lt;/p&gt;

&lt;p&gt;But for a new brand, I suspect consistency is more valuable than trying to invent a different optimized tagline for every platform.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. The website now has two jobs
&lt;/h2&gt;

&lt;p&gt;The MiraYola website originally felt more like a product experience.&lt;/p&gt;

&lt;p&gt;It contains things such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Live Rooms&lt;/li&gt;
&lt;li&gt;Music Plaza&lt;/li&gt;
&lt;li&gt;music discovery&lt;/li&gt;
&lt;li&gt;previews of the product experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is useful for users, but it does not automatically create strong search entry points.&lt;/p&gt;

&lt;p&gt;So I started giving the website a second job:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;explain individual product capabilities in the language people actually search for.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That led to feature pages around concepts such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI Song Generator
Text to Song
Lyrics to Song
AI Remix
AI Music Video
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important part was not simply creating one page per keyword.&lt;/p&gt;

&lt;p&gt;I wanted each page to represent a real difference in user intent.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;h3&gt;
  
  
  Text to Song
&lt;/h3&gt;

&lt;p&gt;The user has an idea:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A quiet song about meeting an old friend again
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;but does not necessarily have lyrics.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lyrics to Song
&lt;/h3&gt;

&lt;p&gt;The user already has words and wants to turn those words into music.&lt;/p&gt;

&lt;p&gt;Those queries look similar from a product implementation perspective, but they represent different starting points for the user.&lt;/p&gt;

&lt;p&gt;That distinction became my rule:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I do not want to create two pages only because two keywords are different. I want to create two pages when the search intent is meaningfully different.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I am still applying this rule imperfectly.&lt;/p&gt;

&lt;p&gt;There is always a temptation to create:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/ai-music-maker
/ai-music-generator
/ai-song-maker
/ai-song-generator
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and hope four pages are better than one.&lt;/p&gt;

&lt;p&gt;They probably are not if they all say the same thing.&lt;/p&gt;

&lt;p&gt;This has become one of the bigger lessons from the experiment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keywords are not the same thing as pages.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  5. The website does not pretend to do something it cannot do
&lt;/h2&gt;

&lt;p&gt;There is another complication.&lt;/p&gt;

&lt;p&gt;MiraYola has a web presence, but the full creation workflow currently happens in the app.&lt;/p&gt;

&lt;p&gt;That creates an SEO problem.&lt;/p&gt;

&lt;p&gt;Imagine someone searches:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;text to song
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;lands on a webpage, and discovers that the actual generation happens inside an app.&lt;/p&gt;

&lt;p&gt;It would be easy to build an SEO page that looks like an online generator even though it is not.&lt;/p&gt;

&lt;p&gt;I decided against that.&lt;/p&gt;

&lt;p&gt;The feature pages explicitly explain what the feature does and then tell the user that creation continues in the MiraYola app.&lt;/p&gt;

&lt;p&gt;The page still needs to be useful on its own:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explain the workflow&lt;/li&gt;
&lt;li&gt;explain what input is expected&lt;/li&gt;
&lt;li&gt;give examples&lt;/li&gt;
&lt;li&gt;distinguish it from related features&lt;/li&gt;
&lt;li&gt;answer common questions&lt;/li&gt;
&lt;li&gt;show where to continue&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This may or may not be enough to rank competitively.&lt;/p&gt;

&lt;p&gt;I do not know yet.&lt;/p&gt;

&lt;p&gt;But I would rather test an honest landing page than manufacture fake tool pages purely for search traffic.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. The App Store and Google Play are part of the same SEO system
&lt;/h2&gt;

&lt;p&gt;I used to mentally separate SEO and ASO.&lt;/p&gt;

&lt;p&gt;Now I think the separation is less useful for a product like this.&lt;/p&gt;

&lt;p&gt;The Google Play listing currently describes MiraYola using concepts such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI music maker
AI song generator
text to song
lyrics to music
AI remix
instrumental music
music video
music discovery
live AI music
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The App Store uses the same core brand/category relationship:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MiraYola: AI Music Maker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The website then reinforces those same concepts.&lt;/p&gt;

&lt;p&gt;So instead of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Website SEO
      +
Google Play ASO
      +
App Store ASO
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I am thinking more like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                MiraYola
                    |
        -------------------------
        |           |           |
       Web      Google Play   App Store
        |           |           |
        -------------------------
                    |
             AI Music Maker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The terminology does not need to be identical word-for-word.&lt;/p&gt;

&lt;p&gt;But the systems should not disagree about what the product is.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. GitHub became part of the identity layer too
&lt;/h2&gt;

&lt;p&gt;I also created a simple GitHub Pages developer site.&lt;/p&gt;

&lt;p&gt;Its purpose is not to rank for competitive AI music keywords.&lt;/p&gt;

&lt;p&gt;It exists primarily to establish another understandable relationship:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Developer
    ↓
Products
    ↓
MiraYola
    ↓
Official Website / Store
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The site lists my products and describes MiraYola as an AI music maker and exploration product.&lt;/p&gt;

&lt;p&gt;I also updated my developer-facing profiles so that MiraYola is associated with the same creator identity.&lt;/p&gt;

&lt;p&gt;This made me reconsider how I think about backlinks.&lt;/p&gt;

&lt;p&gt;Previously I would have asked:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Is this a dofollow backlink?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now I am also asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Does this page help establish a believable relationship between the developer, the brand, the website, and the product?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A link from a developer profile may never move a competitive keyword by itself.&lt;/p&gt;

&lt;p&gt;But it can still be part of a coherent identity graph.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. I started writing about the problems instead of the product
&lt;/h2&gt;

&lt;p&gt;I do not want every external article to say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;MiraYola is an amazing AI music app. Download it here.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That would quickly turn into low-value self-promotion.&lt;/p&gt;

&lt;p&gt;Instead, I am trying to write about problems that actually happened while building the product.&lt;/p&gt;

&lt;p&gt;The previous article was one example.&lt;/p&gt;

&lt;p&gt;The subject was not:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Introducing MiraYola
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;What I Learned Migrating an Android App
to a New Brand and Domain
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;MiraYola appeared because it was the real product involved in the problem.&lt;/p&gt;

&lt;p&gt;This article follows the same principle.&lt;/p&gt;

&lt;p&gt;The topic is not really:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Please search for MiraYola.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What do you actually do with SEO when your brand is too new to have meaningful branded search demand?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That creates a more natural relationship:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Developer experience
        ↓
Real implementation
        ↓
MiraYola
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I have been experimenting with longer-form articles and product notes in a similar way, writing about product decisions, technical problems, branding, and AI music instead of republishing store descriptions.&lt;/p&gt;

&lt;p&gt;Whether any of this produces meaningful search authority remains to be seen.&lt;/p&gt;

&lt;p&gt;At this point I care more about creating legitimate references than manufacturing large numbers of weak links.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. Social media is not only a traffic channel
&lt;/h2&gt;

&lt;p&gt;YouTube, Instagram, and X originally felt separate from SEO.&lt;/p&gt;

&lt;p&gt;I am beginning to treat them as part of the same brand system.&lt;/p&gt;

&lt;p&gt;The direct traffic from these channels is still small.&lt;/p&gt;

&lt;p&gt;But they create public objects associated with the brand:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MiraYola YouTube channel
MiraYola videos
MiraYola social profile
MiraYola music content
MiraYola AI music descriptions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The strategy is not to put twenty SEO keywords into every caption.&lt;/p&gt;

&lt;p&gt;It is much simpler:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Brand
+
Content category
+
Repeated real usage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example, a music video can naturally associate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MiraYola
AI Music
AI Music Video
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A product demonstration can associate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MiraYola
AI Song Generator
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A Live Room clip can associate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MiraYola
AI Singer
Live Music Experience
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The profiles then connect back to the same product identity.&lt;/p&gt;

&lt;p&gt;Again, I do not know how much direct ranking value this produces.&lt;/p&gt;

&lt;p&gt;That is not something I want to pretend I can measure yet.&lt;/p&gt;

&lt;p&gt;But it makes the public footprint much more coherent than having one isolated website trying to establish a new word by itself.&lt;/p&gt;




&lt;h2&gt;
  
  
  10. I also started thinking about &lt;code&gt;sameAs&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Structured data became another part of this experiment.&lt;/p&gt;

&lt;p&gt;Conceptually, I want the website to be able to express something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MiraYola
  ├── Website
  ├── App
  ├── Developer
  ├── YouTube
  ├── GitHub
  └── Other official profiles
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Schema such as &lt;code&gt;Organization&lt;/code&gt;, &lt;code&gt;SoftwareApplication&lt;/code&gt;, and &lt;code&gt;sameAs&lt;/code&gt; can help express those relationships.&lt;/p&gt;

&lt;p&gt;I do not treat structured data as a ranking hack.&lt;/p&gt;

&lt;p&gt;Adding:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"sameAs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;does not suddenly create brand authority.&lt;/p&gt;

&lt;p&gt;I see it more as reducing ambiguity.&lt;/p&gt;

&lt;p&gt;If I am already maintaining several official identities, I want machines to have an explicit way to understand that they belong together.&lt;/p&gt;




&lt;h2&gt;
  
  
  11. What has actually happened so far?
&lt;/h2&gt;

&lt;p&gt;This is where I want to be careful.&lt;/p&gt;

&lt;p&gt;The experiment has &lt;strong&gt;not succeeded yet&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;MiraYola is still a very young brand.&lt;/p&gt;

&lt;p&gt;Branded search volume is tiny.&lt;/p&gt;

&lt;p&gt;The website is still being crawled and re-indexed.&lt;/p&gt;

&lt;p&gt;Some SEO pages are only beginning to appear in search.&lt;/p&gt;

&lt;p&gt;The external footprint is still small.&lt;/p&gt;

&lt;p&gt;And after changing the Google Play name from Song Flow to MiraYola, store browsing impressions dropped noticeably.&lt;/p&gt;

&lt;p&gt;That last part is especially important.&lt;/p&gt;

&lt;p&gt;A rebrand can destroy some of the recognition the old listing had accumulated before the new identity has earned anything to replace it.&lt;/p&gt;

&lt;p&gt;So the current situation is not:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Rebrand
→ SEO strategy
→ traffic growth
→ success
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It looks much more like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Rebrand
        ↓
Old signals weakened
        ↓
New brand has little demand
        ↓
Rebuild identity across platforms
        ↓
Wait for crawling / indexing / association
        ↓
Measure
        ↓
Adjust
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And I am somewhere in the middle.&lt;/p&gt;




&lt;h2&gt;
  
  
  12. There are still some early signals
&lt;/h2&gt;

&lt;p&gt;Although I would not call them results yet, a few things are at least moving in the intended direction.&lt;/p&gt;

&lt;p&gt;MiraYola now exists publicly across multiple independent surfaces.&lt;/p&gt;

&lt;p&gt;The search engine can encounter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Official website
Feature pages
Google Play
App Store
GitHub / developer site
Long-form articles
YouTube
Social profiles
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Some of the new website feature pages are already discoverable.&lt;/p&gt;

&lt;p&gt;The app stores use the new brand.&lt;/p&gt;

&lt;p&gt;The GitHub developer site contains the new brand.&lt;/p&gt;

&lt;p&gt;YouTube has moved to the new identity.&lt;/p&gt;

&lt;p&gt;Third-party app indexes have also started reflecting the new name.&lt;/p&gt;

&lt;p&gt;This is a very different situation from the first day of the rename, when MiraYola was essentially a word with almost no history.&lt;/p&gt;

&lt;p&gt;But this is still &lt;strong&gt;presence&lt;/strong&gt;, not &lt;strong&gt;authority&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That distinction matters.&lt;/p&gt;

&lt;p&gt;Having ten URLs containing your brand name does not mean people search for the brand.&lt;/p&gt;

&lt;p&gt;Being indexed does not mean ranking for competitive generic keywords.&lt;/p&gt;

&lt;p&gt;And having social profiles does not automatically improve organic traffic.&lt;/p&gt;

&lt;p&gt;The only thing I can reasonably say right now is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;the entity is becoming more consistently represented across the web.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Whether that eventually turns into rankings or branded demand is the next part of the experiment.&lt;/p&gt;




&lt;h2&gt;
  
  
  13. My current SEO model has three layers
&lt;/h2&gt;

&lt;p&gt;After doing this for a while, I now think of MiraYola's SEO in three layers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Layer 1: Brand identity
&lt;/h3&gt;

&lt;p&gt;Make sure search engines can answer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;What is MiraYola?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Signals include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;official website&lt;/li&gt;
&lt;li&gt;app stores&lt;/li&gt;
&lt;li&gt;developer identity&lt;/li&gt;
&lt;li&gt;social profiles&lt;/li&gt;
&lt;li&gt;structured data&lt;/li&gt;
&lt;li&gt;external mentions&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Layer 2: Product category
&lt;/h3&gt;

&lt;p&gt;Make sure the relationship is understandable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MiraYola
    ↓
AI Music Maker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;with supporting concepts such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI Song Generator
AI Remix
AI Music Video
AI Music Discovery
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Layer 3: Search intent
&lt;/h3&gt;

&lt;p&gt;Only then do individual pages compete for things like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Text to Song
Lyrics to Song
AI Song Generator
AI Remix Generator
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I previously jumped almost immediately to Layer 3.&lt;/p&gt;

&lt;p&gt;Now I think a new brand needs all three.&lt;/p&gt;




&lt;h2&gt;
  
  
  14. The matrix I am building now
&lt;/h2&gt;

&lt;p&gt;The current version looks roughly like this:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Surface&lt;/th&gt;
&lt;th&gt;Main purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Official website&lt;/td&gt;
&lt;td&gt;Canonical brand identity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Feature pages&lt;/td&gt;
&lt;td&gt;Capture specific product/search intent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Google Play&lt;/td&gt;
&lt;td&gt;Android product identity + category&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App Store&lt;/td&gt;
&lt;td&gt;iOS product identity + category&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub Profile&lt;/td&gt;
&lt;td&gt;Developer identity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub Pages&lt;/td&gt;
&lt;td&gt;Developer → product relationship&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Long-form articles&lt;/td&gt;
&lt;td&gt;Real implementation and product thinking&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;YouTube&lt;/td&gt;
&lt;td&gt;Product + music/video content&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Instagram&lt;/td&gt;
&lt;td&gt;Visual/music content&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;X&lt;/td&gt;
&lt;td&gt;Brand activity and product updates&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Structured data&lt;/td&gt;
&lt;td&gt;Connect official identities&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Existing directories&lt;/td&gt;
&lt;td&gt;Independent product references&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The goal is not:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Get backlinks from all of them.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Make all of them describe roughly
the same real thing.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is a subtle difference, but it has changed how I choose SEO work.&lt;/p&gt;




&lt;h2&gt;
  
  
  15. What I am deliberately not doing
&lt;/h2&gt;

&lt;p&gt;There are also several things I am trying to avoid.&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating dozens of near-identical landing pages
&lt;/h3&gt;

&lt;p&gt;I would rather have one strong page for one real intent than five pages that differ only by replacing “maker” with “generator.”&lt;/p&gt;

&lt;h3&gt;
  
  
  Publishing the same promotional article everywhere
&lt;/h3&gt;

&lt;p&gt;That creates URLs, but not necessarily useful signals.&lt;/p&gt;

&lt;h3&gt;
  
  
  Repeating the exact same keyword unnaturally
&lt;/h3&gt;

&lt;p&gt;Consistency does not mean copy-pasting the same sentence across every platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  Judging SEO changes after one or two days
&lt;/h3&gt;

&lt;p&gt;This has been one of the hardest habits to break.&lt;/p&gt;

&lt;p&gt;Search Console reports are delayed.&lt;/p&gt;

&lt;p&gt;Crawling is delayed.&lt;/p&gt;

&lt;p&gt;Indexing is delayed.&lt;/p&gt;

&lt;p&gt;Ranking responses are delayed.&lt;/p&gt;

&lt;p&gt;Third-party sites update on their own schedules.&lt;/p&gt;

&lt;p&gt;SEO has much longer feedback loops than most product development.&lt;/p&gt;




&lt;h2&gt;
  
  
  16. What I am watching next
&lt;/h2&gt;

&lt;p&gt;The next stage is measurement.&lt;/p&gt;

&lt;p&gt;I want to see whether several things change over time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Branded search
&lt;/h3&gt;

&lt;p&gt;Does:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MiraYola
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;eventually produce a cleaner SERP dominated by the official product and profiles?&lt;/p&gt;

&lt;h3&gt;
  
  
  Brand + category
&lt;/h3&gt;

&lt;p&gt;Do searches such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MiraYola AI Music
MiraYola AI Music Maker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;become clearly associated with the product?&lt;/p&gt;

&lt;h3&gt;
  
  
  Feature queries
&lt;/h3&gt;

&lt;p&gt;Can specific pages begin getting impressions for:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;text to song
lyrics to song
AI remix generator
AI song generator
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;even if they start far from page one?&lt;/p&gt;

&lt;h3&gt;
  
  
  App discovery
&lt;/h3&gt;

&lt;p&gt;Does Google Play browsing recover after the rename and metadata changes settle?&lt;/p&gt;

&lt;h3&gt;
  
  
  External discovery
&lt;/h3&gt;

&lt;p&gt;Do independent developer pages, articles, videos, social profiles, and product listings start appearing around branded searches?&lt;/p&gt;

&lt;p&gt;Those will be more meaningful signals than simply counting backlinks.&lt;/p&gt;




&lt;h2&gt;
  
  
  17. The biggest change has been how I think about SEO
&lt;/h2&gt;

&lt;p&gt;Before this migration, my mental model was close to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Keyword
   ↓
Page
   ↓
Backlinks
   ↓
Ranking
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I still think all of those things matter.&lt;/p&gt;

&lt;p&gt;But for a brand that almost nobody searches for yet, I now think the earlier stage looks more like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Consistent identity
        ↓
Independent references
        ↓
Product/category association
        ↓
Search engine confidence
        ↓
Search visibility
        ↓
Eventually, branded demand
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I cannot prove yet that this strategy will work for MiraYola.&lt;/p&gt;

&lt;p&gt;That is part of why I wanted to write this now rather than after the fact.&lt;/p&gt;

&lt;p&gt;Success stories tend to make experiments look much cleaner than they really were.&lt;/p&gt;

&lt;p&gt;Right now the situation is messy.&lt;/p&gt;

&lt;p&gt;Some pages are indexed.&lt;/p&gt;

&lt;p&gt;Some are still settling.&lt;/p&gt;

&lt;p&gt;The new brand exists across more surfaces.&lt;/p&gt;

&lt;p&gt;Google Play visibility took a hit after the rename.&lt;/p&gt;

&lt;p&gt;Generic AI music keywords are extremely competitive.&lt;/p&gt;

&lt;p&gt;And almost nobody wakes up in the morning already planning to search for “MiraYola.”&lt;/p&gt;

&lt;p&gt;That is the actual starting point.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final takeaway
&lt;/h2&gt;

&lt;p&gt;My previous post ended with the idea that a rebrand is really an infrastructure migration.&lt;/p&gt;

&lt;p&gt;I would add another lesson now:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;After the infrastructure migration comes an identity migration.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Changing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Song Flow
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;into:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MiraYola
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;inside the application was easy.&lt;/p&gt;

&lt;p&gt;Getting the wider internet to gradually understand:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MiraYola
    =
AI Music Maker
    +
AI Song Creation
    +
AI Music Discovery
    +
Live AI Music Experiences
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;is much slower.&lt;/p&gt;

&lt;p&gt;So for now, I am not trying to claim an SEO win.&lt;/p&gt;

&lt;p&gt;I am building the matrix, watching what gets indexed, watching which queries begin producing impressions, and trying to make every public surface tell a consistent story.&lt;/p&gt;

&lt;p&gt;Maybe six months from now this experiment will look smart.&lt;/p&gt;

&lt;p&gt;Maybe I will discover that half of these signals mattered much less than I expected.&lt;/p&gt;

&lt;p&gt;Either result will be useful.&lt;/p&gt;

&lt;p&gt;For now, the experiment continues.&lt;/p&gt;




&lt;p&gt;MiraYola is the AI music product I am currently building and was previously known as Song Flow.&lt;/p&gt;

&lt;p&gt;Website: &lt;strong&gt;&lt;a href="https://mirayola.huoji.app" rel="noopener noreferrer"&gt;https://mirayola.huoji.app&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The previous post in this series is &lt;strong&gt;“What I Learned Migrating an Android App to a New Brand and Domain.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AI-assisted disclosure: AI was used to help organize and edit this article. The product decisions, SEO experiments, migration issues, and observations are based on the actual MiraYola project.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>branding</category>
      <category>seo</category>
      <category>startup</category>
    </item>
    <item>
      <title>What I Learned Migrating an Android App to a New Brand and Domain</title>
      <dc:creator>ahfu168</dc:creator>
      <pubDate>Mon, 17 Aug 2026 04:07:21 +0000</pubDate>
      <link>https://dev.to/_44474bf1334efd85513fb/what-i-learned-migrating-an-android-app-to-a-new-brand-and-domain-5a14</link>
      <guid>https://dev.to/_44474bf1334efd85513fb/what-i-learned-migrating-an-android-app-to-a-new-brand-and-domain-5a14</guid>
      <description>&lt;p&gt;Renaming an existing app turned out to be much more than changing a logo and a store title.&lt;/p&gt;

&lt;p&gt;When we moved our product from &lt;strong&gt;Song Flow&lt;/strong&gt; to &lt;strong&gt;MiraYola&lt;/strong&gt;, we had to deal with several systems that had already formed assumptions around the old brand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Android package identity&lt;/li&gt;
&lt;li&gt;Deep links&lt;/li&gt;
&lt;li&gt;Website domains&lt;/li&gt;
&lt;li&gt;Google Play App Links verification&lt;/li&gt;
&lt;li&gt;Canonical URLs&lt;/li&gt;
&lt;li&gt;Old shared links&lt;/li&gt;
&lt;li&gt;Google Search Console&lt;/li&gt;
&lt;li&gt;Third-party pages that still referenced the old name&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most important lesson was that a brand migration is really an infrastructure migration.&lt;/p&gt;

&lt;p&gt;This post covers the parts that caused the most uncertainty and the decisions that helped us avoid breaking existing users.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Keep the Android package name stable
&lt;/h2&gt;

&lt;p&gt;The Android app already used:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;com.huoji.singflow
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The public product name changed, but we intentionally kept the package name.&lt;/p&gt;

&lt;p&gt;For an existing Google Play app, the package identifier is part of the application's technical identity. Changing it would effectively mean publishing a different application.&lt;/p&gt;

&lt;p&gt;That would create unnecessary problems around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Existing installs&lt;/li&gt;
&lt;li&gt;Store history&lt;/li&gt;
&lt;li&gt;Purchases&lt;/li&gt;
&lt;li&gt;Deep links&lt;/li&gt;
&lt;li&gt;Update continuity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So our setup became:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Public brand: MiraYola
Android package: com.huoji.singflow
Website: mirayola.huoji.app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It looks inconsistent, but technically it is completely reasonable.&lt;/p&gt;

&lt;p&gt;A public brand name and an internal package identifier do not need to match.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Decide what the root URL should represent
&lt;/h2&gt;

&lt;p&gt;The website supports multiple languages:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/en
/zh
/ja
/ko
/ar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We did not want both:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/en
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to behave like duplicate English homepages.&lt;/p&gt;

&lt;p&gt;So the root URL permanently redirects to the English version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/ → /en
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The English page then declares itself as canonical.&lt;/p&gt;

&lt;p&gt;A simplified example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt;
  &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"canonical"&lt;/span&gt;
  &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://mirayola.huoji.app/en"&lt;/span&gt;
&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This gave search engines one clear English homepage instead of two competing URLs.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Do not panic when Search Console lags behind production
&lt;/h2&gt;

&lt;p&gt;During the migration, Google Search Console temporarily reported the root page as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Page is not indexed: Redirect error
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first instinct is to assume the current routing is broken.&lt;/p&gt;

&lt;p&gt;Instead, we checked the real HTTP behavior:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-IL&lt;/span&gt; https://mirayola.huoji.app/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The expected flow was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;308
Location: /en
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;followed by:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;200
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;on the destination page.&lt;/p&gt;

&lt;p&gt;The production behavior was already correct, while Search Console was still reflecting an earlier crawl.&lt;/p&gt;

&lt;p&gt;After Google crawled the site again, the status changed.&lt;/p&gt;

&lt;p&gt;That was a useful reminder:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Search Console is not always a real-time representation of production.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;During migrations, I now verify both:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The actual HTTP response&lt;/li&gt;
&lt;li&gt;The latest Google crawl state&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;before changing routing again.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. SEO pages and App Links should not be the same thing
&lt;/h2&gt;

&lt;p&gt;One of the most useful decisions was to avoid making the entire website open inside the Android app.&lt;/p&gt;

&lt;p&gt;Pages such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/en
/en/features/ai-song-generator
/en/plaza
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;are normal web pages.&lt;/p&gt;

&lt;p&gt;They should stay accessible in the browser.&lt;/p&gt;

&lt;p&gt;But URLs representing interactive app content, such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/room/*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;are good candidates for Android App Links.&lt;/p&gt;

&lt;p&gt;So the model became:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Informational / SEO pages
→ Browser

Interactive app content
→ Android app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This kept App Links focused instead of treating every web URL as an application route.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Configure the Android side with a narrow intent filter
&lt;/h2&gt;

&lt;p&gt;A simplified intent filter looked like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;intent-filter&lt;/span&gt; &lt;span class="na"&gt;android:autoVerify=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;action&lt;/span&gt; &lt;span class="na"&gt;android:name=&lt;/span&gt;&lt;span class="s"&gt;"android.intent.action.VIEW"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;category&lt;/span&gt; &lt;span class="na"&gt;android:name=&lt;/span&gt;&lt;span class="s"&gt;"android.intent.category.DEFAULT"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;category&lt;/span&gt; &lt;span class="na"&gt;android:name=&lt;/span&gt;&lt;span class="s"&gt;"android.intent.category.BROWSABLE"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;data&lt;/span&gt;
        &lt;span class="na"&gt;android:scheme=&lt;/span&gt;&lt;span class="s"&gt;"https"&lt;/span&gt;
        &lt;span class="na"&gt;android:host=&lt;/span&gt;&lt;span class="s"&gt;"mirayola.huoji.app"&lt;/span&gt;
        &lt;span class="na"&gt;android:pathPrefix=&lt;/span&gt;&lt;span class="s"&gt;"/room/"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/intent-filter&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This tells Android that the application wants to handle URLs under:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://mirayola.huoji.app/room/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important part is keeping the scope intentional.&lt;/p&gt;

&lt;p&gt;Just because an app owns a domain does not mean every page on that domain should open the app.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Verify the relationship with &lt;code&gt;assetlinks.json&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;The website also needs to authorize the Android application.&lt;/p&gt;

&lt;p&gt;That happens through:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/.well-known/assetlinks.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A simplified example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"relation"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="s2"&gt;"delegate_permission/common.handle_all_urls"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"target"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"namespace"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"android_app"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"package_name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"com.huoji.singflow"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"sha256_cert_fingerprints"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"PLAY_APP_SIGNING_SHA256"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The most important detail here is the signing certificate.&lt;/p&gt;

&lt;p&gt;For an app distributed through Google Play, the fingerprint used by production installations may be the &lt;strong&gt;Play App Signing&lt;/strong&gt; certificate rather than the certificate used locally.&lt;/p&gt;

&lt;p&gt;Using the wrong fingerprint can make the configuration look correct while verification still fails.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Keep the old domain alive during the transition
&lt;/h2&gt;

&lt;p&gt;Old links do not disappear when a brand changes.&lt;/p&gt;

&lt;p&gt;They may still exist in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Old social posts&lt;/li&gt;
&lt;li&gt;Chat messages&lt;/li&gt;
&lt;li&gt;Bookmarks&lt;/li&gt;
&lt;li&gt;Search indexes&lt;/li&gt;
&lt;li&gt;Previously shared content&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of immediately removing the old Song Flow domain, we kept it available during the migration.&lt;/p&gt;

&lt;p&gt;The new domain became the preferred destination:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mirayola.huoji.app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;while old links could continue working when necessary.&lt;/p&gt;

&lt;p&gt;This was especially important for deep links.&lt;/p&gt;

&lt;p&gt;A migration is much safer when new links move forward without forcing every old link to stop working on the same day.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Redirects and App Links solve different problems
&lt;/h2&gt;

&lt;p&gt;This distinction helped simplify the architecture.&lt;/p&gt;

&lt;p&gt;A redirect answers:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which web URL should this web URL resolve to?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/ → /en
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An App Link answers:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Should Android open this HTTPS URL in the app?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/room/123 → Android app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those are separate layers.&lt;/p&gt;

&lt;p&gt;Mixing them together makes debugging much harder.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. The hardest part was not technical
&lt;/h2&gt;

&lt;p&gt;Most of the technical changes can be verified quickly.&lt;/p&gt;

&lt;p&gt;You can check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP responses&lt;/li&gt;
&lt;li&gt;Canonical tags&lt;/li&gt;
&lt;li&gt;&lt;code&gt;assetlinks.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Android intent filters&lt;/li&gt;
&lt;li&gt;Google Play Deep Links verification&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The harder part is that external systems update at different speeds.&lt;/p&gt;

&lt;p&gt;After a rebrand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The app store may show the new name immediately&lt;/li&gt;
&lt;li&gt;Google Search may still show old information&lt;/li&gt;
&lt;li&gt;Third-party directories may take longer&lt;/li&gt;
&lt;li&gt;Old URLs may remain indexed for some time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That does not necessarily mean the migration is broken.&lt;/p&gt;

&lt;p&gt;It often means the internet is gradually converging on the new identity.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would do differently next time
&lt;/h2&gt;

&lt;p&gt;Before changing the public brand, I would make a migration checklist covering:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Domains
Android App Links
Deep links
Canonical URLs
App store metadata
Structured data
Social profiles
Shared URLs
Third-party listings
Search engine indexing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I would also test all important URLs before and after the change.&lt;/p&gt;

&lt;p&gt;A few simple commands can catch a surprising number of problems:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-I&lt;/span&gt; https://example.com/
curl &lt;span class="nt"&gt;-IL&lt;/span&gt; https://example.com/
curl https://example.com/.well-known/assetlinks.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And most importantly, I would avoid changing stable technical identifiers unless there is a real reason to do so.&lt;/p&gt;

&lt;p&gt;The public brand can change.&lt;/p&gt;

&lt;p&gt;The infrastructure does not always need to.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final takeaway
&lt;/h2&gt;

&lt;p&gt;The visible migration was simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Song Flow → MiraYola
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The actual migration involved:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Brand
+
Domain
+
Redirects
+
Canonical URLs
+
Android App Links
+
Deep Links
+
Backward compatibility
+
Search re-indexing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That is the part of a rebrand users rarely see.&lt;/p&gt;

&lt;p&gt;If you are planning a similar migration, my main advice is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Treat the rename as an infrastructure change first, and a branding change second.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;This post is based on the real migration of the MiraYola Android app and website.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-assisted disclosure:&lt;/strong&gt; AI was used to help organize and edit this article. The technical decisions and migration details are based on the actual implementation.&lt;/p&gt;

</description>
      <category>android</category>
      <category>mobile</category>
      <category>software</category>
    </item>
  </channel>
</rss>
