WEBVTT

1
00:00:00.225 --> 00:00:06.712
You're listening to a guide on how to treat your site as the central hub for content distribution across platforms.

2
00:00:06.712 --> 00:00:09.875
Written by Angel Nee-evess on Promptway.

3
00:00:10.435 --> 00:00:23.672
Part one of this series covered your own site: L L M S dot text, structured data, machine-readable feeds, the eight layers that make your pages legible to humans and to the AI agents that increasingly read on their behalf.

4
00:00:23.672 --> 00:00:26.335
This piece is about everywhere else.

5
00:00:26.660 --> 00:00:27.497
The mental model

6
00:00:27.497 --> 00:00:28.260
is simple.

7
00:00:28.260 --> 00:00:28.485
Your

8
00:00:28.485 --> 00:00:28.810
site

9
00:00:28.810 --> 00:00:28.960
is

10
00:00:28.960 --> 00:00:30.060
the canonical home.

11
00:00:30.060 --> 00:00:32.722
Everywhere else is a spoke that points back to it.

12
00:00:32.722 --> 00:00:34.160
Spokes get you seen.

13
00:00:34.160 --> 00:00:35.460
The hub gets the credit.

14
00:00:35.460 --> 00:00:35.960
If you mix

15
00:00:35.960 --> 00:00:37.110
that up, you spend a year

16
00:00:37.110 --> 00:00:37.535
writing

17
00:00:37.535 --> 00:00:37.685
for

18
00:00:37.685 --> 00:00:37.947
someone

19
00:00:37.947 --> 00:00:38.347
else's

20
00:00:38.347 --> 00:00:38.860
audience

21
00:00:38.860 --> 00:00:38.985
and

22
00:00:38.985 --> 00:00:39.385
ranking

23
00:00:39.385 --> 00:00:39.510
for

24
00:00:39.510 --> 00:00:39.772
someone

25
00:00:39.772 --> 00:00:40.185
else's

26
00:00:40.185 --> 00:00:41.610
domain.

27
00:00:41.935 --> 00:00:46.872
I just finished wiring this distribution stack on Promptway, the site you are reading.

28
00:00:46.872 --> 00:00:52.110
Here is what I built, in the order I would build it again, and why each layer matters.

29
00:00:52.385 --> 00:00:58.722
Start with full content feeds Most blogs ship a summary-only R S S feed by default.

30
00:00:58.722 --> 00:01:03.735
That is fine if R S S is just an archive ping for a few Feedly subscribers.

31
00:01:03.735 --> 00:01:07.335
It is a real problem the moment you want to syndicate.

32
00:01:07.610 --> 00:01:11.110
Every downstream channel that consumes your feed reads from it directly.

33
00:01:11.110 --> 00:01:18.160
dev.to's R S S importer, Flipboard magazines, Feedly previews, AI ingestion bots, every one of them pulls the article body out of the feed.

34
00:01:18.160 --> 00:01:20.285
If your feed has a summary, that is all they get.

35
00:01:20.285 --> 00:01:23.010
They cannot republish a full article from a 200 character

36
00:01:23.010 --> 00:01:23.584
teaser,

37
00:01:23.584 --> 00:01:23.697
so

38
00:01:23.697 --> 00:01:23.835
they

39
00:01:23.835 --> 00:01:24.085
either

40
00:01:24.085 --> 00:01:24.385
skip

41
00:01:24.385 --> 00:01:24.585
you

42
00:01:24.585 --> 00:01:24.710
or

43
00:01:24.710 --> 00:01:24.972
post

44
00:01:24.972 --> 00:01:25.035
a

45
00:01:25.035 --> 00:01:25.497
fragment

46
00:01:25.497 --> 00:01:25.597
that

47
00:01:25.597 --> 00:01:25.747
is

48
00:01:25.747 --> 00:01:26.185
useless

49
00:01:26.185 --> 00:01:26.310
to

50
00:01:26.310 --> 00:01:26.597
anyone

51
00:01:26.597 --> 00:01:26.735
who

52
00:01:26.735 --> 00:01:27.035
finds

53
00:01:27.035 --> 00:01:27.860
it.

54
00:01:28.135 --> 00:01:28.210
The

55
00:01:28.210 --> 00:01:28.485
fix

56
00:01:28.485 --> 00:01:28.635
is

57
00:01:28.635 --> 00:01:28.860
one

58
00:01:28.860 --> 00:01:29.097
feed

59
00:01:29.097 --> 00:01:29.810
change.

60
00:01:29.810 --> 00:01:29.910
In

61
00:01:29.910 --> 00:01:30.097
R

62
00:01:30.097 --> 00:01:30.247
S

63
00:01:30.247 --> 00:01:30.435
S,

64
00:01:30.435 --> 00:01:30.635
add

65
00:01:30.635 --> 00:01:35.010
<content:encoded> with the full rendered H T M L of the article wrapped in CDATA.

66
00:01:35.010 --> 00:01:37.460
In jay-son Feed, populate content_html.

67
00:01:37.460 --> 00:01:40.435
Keep the short description or summary field for clients that want a preview.

68
00:01:40.435 --> 00:01:51.497
While you are in there, add <atom:link rel="self"> so the feed is self-aware, a <link rel="hub"> pointing at a WebSub hub, and a <media:content> block with your hero image so cards render with This is the foundation.

69
00:01:51.497 --> 00:01:56.035
Nothing else in this article works as well if the feed is summary-only.

70
00:01:56.310 --> 00:02:01.985
Push, do not wait to be pulled Crawlers used to be the only way new U R Ls got noticed.

71
00:02:01.985 --> 00:02:03.510
That is no longer true.

72
00:02:03.510 --> 00:02:09.510
There is a faster path for everything except Google, and it costs you one HTTP POST.

73
00:02:09.785 --> 00:02:16.285
IndexNow is a small open protocol that lets you tell search engines about a new or updated U R L the instant it ships.

74
00:02:16.285 --> 00:02:24.472
You generate a key, serve it from your domain as a static file, and POST your U R Ls to https://api.indexnow.org/indexnow.

75
00:02:24.472 --> 00:02:28.072
One submission propagates to Bing, Yandex, Seznam, and Naver.

76
00:02:28.072 --> 00:02:30.135
Google is not a participant.

77
00:02:30.435 --> 00:02:31.710
Bing matters double.

78
00:02:31.710 --> 00:02:40.085
Seer Interactive's analysis found that roughly eighty seven percent of ChatGPT search citations overlap with Bing's top ten results.

79
00:02:40.085 --> 00:02:49.185
The fastest path into ChatGPT citations is being indexed by Bing the moment you publish, not three weeks later when its crawler eventually wanders in.

80
00:02:49.460 --> 00:02:51.860
WebSub does the same thing for feed readers.

81
00:02:51.860 --> 00:02:56.210
Add a <link rel="hub"> to your R S S, then POST to the hub when you publish.

82
00:02:56.210 --> 00:03:02.397
Feedly, Inoreader, and similar readers subscribed to the hub get notified in seconds instead of on their normal polling interval.

83
00:03:02.397 --> 00:03:08.335
Google retired its hosted hub but Superfeedr's free hub still works fine for low volume publishers.

84
00:03:08.710 --> 00:03:12.985
Both of these belong in your publish pipeline as one or two function calls.

85
00:03:12.985 --> 00:03:17.735
They are the highest-return two minutes of distribution work you will ever do.

86
00:03:18.010 --> 00:03:23.535
Syndicate with canonicals, always The standard objection to cross-posting is duplicate content.

87
00:03:23.535 --> 00:03:25.260
The fix is older than the problem.

88
00:03:25.260 --> 00:03:33.747
Every copy of your article on someone else's domain declares a rel="canonical" link back to your version, plus a visible "originally published at" line for human readers.

89
00:03:33.747 --> 00:03:40.610
Google has said for years that canonical syndication is fine, and dev.to, Medium, and Hashnode all support it natively.

90
00:03:40.885 --> 00:03:45.585
The targets worth the effort, in roughly this order: dev.to has an open A P I.

91
00:03:45.585 --> 00:03:53.860
Create an organization page, generate an A P I key, and POST /api/articles with canonicalurl set to your version and organizationid set to your org.

92
00:03:53.860 --> 00:03:57.185
Their R S S importer also works if you would rather skip the code path.

93
00:03:57.185 --> 00:04:02.097
Dev.to's audience reads new posts, and the engagement signals roll up to your domain via the canonical.

94
00:04:02.097 --> 00:04:05.872
Hashnode has an R S S importer that respects canonicals.

95
00:04:06.135 --> 00:04:14.547
Their free GraphQL A P I reportedly went paid in May twenty twenty six, so prefer the R S S path unless you are already on a paid plan.

96
00:04:14.547 --> 00:04:25.097
Flipboard has been courting indie publishers in twenty twenty six, but the self-serve R S S pipe into magazines is gone, the help article for it now returns a 404.

97
00:04:25.360 --> 00:04:36.960
What works today: create a magazine, flip your own articles into it by U R L, mix in third-party links so it reads like a magazine instead of a billboard, and email contentpartnerships@flipboard.com with your feed U R L if you want true source-level ingestion.

98
00:04:36.960 --> 00:04:40.410
Medium has an import flow per article that sets the canonical automatically.

99
00:04:40.410 --> 00:04:44.685
Their write A P I has been closed to new tokens since early twenty twenty five, so this is a manual step.

100
00:04:44.685 --> 00:04:46.747
Code blocks import poorly.

101
00:04:47.010 --> 00:04:49.960
Use it opportunistically for essay-style pieces.

102
00:04:50.285 --> 00:04:56.160
The rule across all of them: never let a syndicated copy live without a canonical pointing home.

103
00:04:56.160 --> 00:05:02.210
If a partner's C M S does not support rel="canonical", do not syndicate there.

104
00:05:02.510 --> 00:05:13.410
Social, with realistic expectations The honest truth about social in twenty twenty six is that the only platform where automation is a clear win for indie publishers is Bluesky.

105
00:05:13.410 --> 00:05:19.285
The rest are either too expensive, too restricted, or too judgment-heavy to automate.

106
00:05:19.560 --> 00:05:23.510
Bluesky lets you claim a domain handle for free by adding a D N S text record.

107
00:05:23.510 --> 00:05:29.935
Claim your domain as the handle, @promptway.com in our case, for the same reason browsers show a padlock: the domain is the verification.

108
00:05:29.935 --> 00:05:35.260
The AT Protocol A P I is free and open, so a publish-time post is a few lines of code with an app password.

109
00:05:35.260 --> 00:05:40.460
EchoFeed at about twenty five dollars a year will do it for you from your R S S if you do not want to write the code.

110
00:05:40.760 --> 00:05:46.297
LinkedIn is where the operator audience actually reads, especially for A E O and stack-of-tools pieces.

111
00:05:46.297 --> 00:05:50.235
Skip their A P I, which has a restricted approval process you will not pass as an indie.

112
00:05:50.235 --> 00:05:53.460
Post manually, or pipe through a tool like Typefully or Buffer.

113
00:05:53.460 --> 00:05:58.885
LinkedIn newsletters push to subscribers via email and notifications, which sidesteps the feed algorithm.

114
00:05:58.885 --> 00:06:01.635
Worth setting up once you are publishing weekly.

115
00:06:01.960 --> 00:06:04.960
X is a poor investment in twenty twenty six.

116
00:06:04.960 --> 00:06:14.272
The free A P I tier is closed to new developers, and in April twenty twenty six U R L-containing posts were repriced to roughly twenty cents each on the paid tiers.

117
00:06:14.272 --> 00:06:19.935
Keep the account, post important pieces by hand, and put the automation budget anywhere else.

118
00:06:20.210 --> 00:06:28.497
Email is the channel you actually own Every platform above can change its rules, throttle your reach, or close its A P I tomorrow.

119
00:06:28.497 --> 00:06:29.660
Email cannot.

120
00:06:29.660 --> 00:06:34.085
It is the only channel where you own the list and the delivery mechanism.

121
00:06:34.385 --> 00:06:35.897
Two practical pieces.

122
00:06:35.897 --> 00:06:39.110
First, you need a transactional sender that can do broadcasts.

123
00:06:39.110 --> 00:06:44.622
I use Resend because the A P I is good, the React Email integration is good, and the dashboard is sane.

124
00:06:44.622 --> 00:06:47.822
Postmark and AWS SES work fine too.

125
00:06:47.822 --> 00:06:50.810
Second, on every publish, send a broadcast to your audience.

126
00:06:50.810 --> 00:06:54.135
This is the closest thing you have to a guaranteed reader.

127
00:06:54.410 --> 00:06:58.122
Do not skip RFC 8058 one-click unsubscribe.

128
00:06:58.122 --> 00:07:04.197
Gmail and Yahoo require it for any sender with a meaningful list, and inbox placement gets worse fast without it.

129
00:07:04.197 --> 00:07:13.360
Resend handles the headers if you use their broadcasts A P I; if you roll your own, add List-Unsubscribe and List-Unsubscribe-Post headers and honor the POST.

130
00:07:13.685 --> 00:07:23.060
A welcome email on signup is a nice touch and roughly doubles the chance a subscriber remembers who you are by the time the next broadcast arrives.

131
00:07:23.310 --> 00:07:32.735
The channels that cannot be automated Some of the highest-value surfaces are also the ones where automation will get you banned, downranked, or quietly ignored.

132
00:07:32.735 --> 00:07:35.785
They are worth doing, but they are human work.

133
00:07:36.085 --> 00:07:37.697
Reddit is the biggest of these.

134
00:07:37.697 --> 00:07:45.460
Research from ZipTie found Reddit is the most cited domain in Perplexity, near the top in ChatGPT search, and a dominant source in Google's AI Overviews.

135
00:07:45.460 --> 00:07:51.397
The dynamic is straightforward: AI engines treat Reddit as a corpus of authentic human discussion, and they pull from it heavily.

136
00:07:51.397 --> 00:07:57.385
A single relevant comment with a link to your piece can drive more AI citations than a month of feed syndication.

137
00:07:57.660 --> 00:08:00.447
The catch is that Reddit kills self-promotion on sight.

138
00:08:00.447 --> 00:08:05.422
Two to four weeks of genuine participation in a subreddit before you ever post a link is the floor.

139
00:08:05.422 --> 00:08:11.872
Read the rules of each sub, the old sitewide 90/10 self-promo rule is retired and each subreddit governs itself now.

140
00:08:11.872 --> 00:08:17.385
Text posts that lead with the insight and link out as a citation tend to do better than link posts.

141
00:08:17.685 --> 00:08:19.435
Hacker News is the other one.

142
00:08:19.435 --> 00:08:26.785
It rewards founder-bylined essays with plain factual titles and punishes anything that smells like marketing or AI prose.

143
00:08:26.785 --> 00:08:34.035
If you have personas writing on your site, post only the pieces under your own name and from an account that comments on other people's submissions too.

144
00:08:34.035 --> 00:08:36.685
Do not submit your own work every week.

145
00:08:36.960 --> 00:08:38.335
These are slow channels.

146
00:08:38.335 --> 00:08:41.960
They are also where the citation flywheel actually spins.

147
00:08:42.235 --> 00:08:46.835
Automate the mechanical, keep judgment human The split is the whole game.

148
00:08:46.835 --> 00:08:54.010
The mechanical work (indexing, syndication, broadcast, the Bluesky post) belongs in a script that runs on publish.

149
00:08:54.010 --> 00:09:00.735
The judgment work (which subreddit, when to post to HN, which LinkedIn comment to respond to) stays with you.

150
00:09:01.010 --> 00:09:05.735
My setup is a single distribute.ts script that GitHub Actions runs after the deploy succeeds.

151
00:09:05.735 --> 00:09:14.185
It hits IndexNow, pings the WebSub hub, posts to dev.to via A P I, sends the Resend broadcast, and posts to Bluesky and Mastodon with the hero art, an author tag, and hashtags.

152
00:09:14.185 --> 00:09:17.085
It writes a row to a committed ledger file so re-runs are idempotent.

153
00:09:17.085 --> 00:09:23.160
Total code, about a thousand lines, and most of that is per-channel error handling so one flaky A P I never blocks the rest.

154
00:09:23.485 --> 00:09:34.772
The matching human side is a 15 minute per-article checklist: request indexing in Google Search Console, share-rail posts, one relevant subreddit if it genuinely fits, Medium import.

155
00:09:34.772 --> 00:09:38.210
Fifteen minutes is short enough that I actually do it.

156
00:09:38.485 --> 00:09:42.960
Measure what is actually working The headline number to track is not pageviews.

157
00:09:42.960 --> 00:09:44.960
It is AI referrals.

158
00:09:45.260 --> 00:09:53.635
In G A four, build a custom channel group that captures the referrers worth knowing about: chatgpt.com, perplexity.ai, claude.ai, gemini.google.com.

159
00:09:53.635 --> 00:10:00.785
Industry data puts AI referrals around one percent of pageviews for most publishers, but they convert at multiples of organic search traffic.

160
00:10:00.785 --> 00:10:05.935
They are small, high-intent visits from people whose AI assistant has already vouched for you.

161
00:10:06.235 --> 00:10:19.447
The other dashboards: Google Search Console for indexed pages and impressions, Bing Webmaster Tools for the IndexNow side, Resend for audience growth per broadcast, dev.to organization analytics for the syndicated reach.

162
00:10:19.447 --> 00:10:21.022
Look weekly, not daily.

163
00:10:21.022 --> 00:10:23.160
None of this moves fast.

164
00:10:23.410 --> 00:10:40.985
The shape of it The whole stack, in one breath: ship full content feeds, fire IndexNow and WebSub on publish, syndicate with canonicals, post to Bluesky and LinkedIn, email your list, participate honestly on Reddit and Hacker News, and watch the AI referrer channel quietly grow.

165
00:10:41.335 --> 00:10:43.210
Most of it is one-time setup.

166
00:10:43.210 --> 00:10:46.260
The publish pipeline runs itself once it is wired.

167
00:10:46.260 --> 00:10:48.135
The human channels stay human.

168
00:10:48.135 --> 00:10:50.410
The site stays canonical.

169
00:10:50.735 --> 00:10:52.710
The point is not to be everywhere.

170
00:10:52.710 --> 00:11:03.310
It is to make sure that when a human or an AI engine wants to find your work, every spoke they touch sends them back to the same place: your domain, your byline, your archive.

171
00:11:03.585 --> 00:11:05.510
That is what gets your writing seen.

172
00:11:06.070 --> 00:11:06.920
That's the story.

173
00:11:06.920 --> 00:11:09.832
You'll find every source linked at the end of the article.

174
00:11:09.832 --> 00:11:12.495
Thanks for listening, on Promptway.
