Naver Blog Rank Tracker (네이버 블로그 순위) avatar

Naver Blog Rank Tracker (네이버 블로그 순위)

Pricing

from $2.40 / 1,000 keyword checkeds

Go to Apify Store
Naver Blog Rank Tracker (네이버 블로그 순위)

Naver Blog Rank Tracker (네이버 블로그 순위)

Enter keywords and your Naver blog IDs or post URLs; get each blog's or post's rank in the Naver Blog search tab (top 30 by default, up to 1,000), with rank change since your last run. Optional full ranked list.

Pricing

from $2.40 / 1,000 keyword checkeds

Rating

0.0

(0)

Developer

SUNGHWAN CHO

SUNGHWAN CHO

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Categories

Security

Limited permissions

Share

Enter keywords and your Naver blog IDs or post URLs, get the rank of your blog or post in the Naver Blog search tab (블로그 탭) for each keyword, plus the change since your last run. Turn on includeTopList to also get the full ranked list (rank, title, post URL, blog ID, published date) for each keyword. No login, no Naver API key.

In Korea, blog "상위노출" (top placement) for a keyword is sold and paid for by rank: agencies, clinics, academies, restaurants and brand marketers check every day whether a post is still in the top 5, top 10 or top 30. This Actor does that check on a schedule and keeps the history for you.

What you get

One row per keyword × blog/post you track (type: "myBlogRank"):

  • rank of your best-ranked post for that keyword, or null when it is not within the ranks scanned
  • found: true, false (not within ranksScanned of a finished search) or null (the search did not finish, so absence is unknown)
  • previousRank, rankChange (positive = moved up), isNewEntry, previousScrapedAt compared with your last completed run
  • postUrl, postTitle, publishedAt of the matching post, postsInRanks and otherRanks when the same blog has several posts in the list
  • ranksScanned, searchStatus, stopReason, searchUrl (open it to see the same list) and scrapedAt

Optional ranked list (type: "rankedPost", when includeTopList is on): rank, title, postUrl, blogId, isExternalBlog, isMine, publishedAt, previousRank, rankChange, isNewEntry.

All fields are flat English names, numbers are numbers, missing values are null.

Input

FieldWhat to enter
keywords (required)Search keywords as a Korean user types them, e.g. 제주 카페, 강남 맛집, 피부과 추천. A pasted Naver search URL also works.
myBlogsNaver blog ID (myblog123), blog URL (https://blog.naver.com/myblog123) or post URL (https://blog.naver.com/myblog123/223456789012; m.blog.naver.com and PostView.naver?blogId=…&logNo=… links work too). A blog matches any of its posts; a post URL matches only that post. External blogs shown in the tab (e.g. Tistory) can be given by URL.
maxRankHow deep to look, default 30, max 1000.
sortrelevance (default, the order Naver shows in the blog tab) or recent (newest first).
includeTopListAlso return the full ranked list. Default false.
compareWithLastRunRank change vs the last completed run. Default true.
historyStoreNameNamed key-value store that keeps the previous ranks. Default naver-blog-rank-history; use one name per tracking project.

Example:

{
"keywords": ["제주 카페", "제주 디저트 카페"],
"myBlogs": ["jejudo_official", "https://blog.naver.com/nana_80/224369123705"],
"maxRank": 30
}

Output example

A row from a real run (second run of the day, so the change fields are filled):

{
"schemaVersion": 1,
"source": "naver-blog",
"type": "myBlogRank",
"keyword": "제주 카페",
"sort": "relevance",
"target": "jejudo_official",
"targetType": "blog",
"blogId": "jejudo_official",
"found": true,
"rank": 13,
"previousRank": 12,
"rankChange": -1,
"isNewEntry": false,
"previousScrapedAt": "2026-10-29T13:22:20.000Z",
"postsInRanks": 1,
"otherRanks": null,
"postUrl": "https://blog.naver.com/jejudo_official/224377455358",
"postTitle": "8월 제주도 여행에서 꼭 가봐야하는 가성비 디저트 카페 TOP 6",
"publishedAt": "2026-08-13T00:00:00+09:00",
"ranksScanned": 30,
"maxRank": 30,
"searchStatus": "completed",
"stopReason": "maxRank",
"searchUrl": "https://search.naver.com/search.naver?ssc=tab.blog.all&query=%EC%A0%9C%EC%A3%BC+%EC%B9%B4%ED%8E%98&sm=tab_opt&nso=so%3Ar%2Cp%3Aall",
"scrapedAt": "2026-10-29T13:30:47.382Z"
}

The Run summary (key-value store record RUN_SUMMARY, free) lists every keyword with status (completed, partial, failed, budgetLimited, notStarted), stopReason, ranksScanned, pages read and how many checks were charged.

How ranks are counted

  • Ranks are positions in the Naver Blog search tab (search.naver.com, 블로그 tab), the same list a person sees when scrolling that tab, read without login, cookies or location.
  • Organic only: results Naver labels as ads (파워컨텐츠) are skipped and do not take a rank.
  • A post that Naver repeats further down the list keeps its first position.
  • Relevance order ends near rank 70. In our tests (10 keywords, Oct 2026) Naver's blog tab served about 70 distinct posts in relevance order and then repeated earlier posts, so a relevance search stops there with stopReason: "endOfResults" and found: false means "not in the top ~70". With sort: "recent" the list goes deeper (tested to rank 300; Naver stops at about 1,000).
  • Rank change compares with the last completed run of the same keyword and sort in your history store. isNewEntry is true only when the previous run scanned at least that deep, otherwise null.
  • This Actor checks the blog tab only. Positions inside the integrated search page (통합검색 smart blocks) are not reported, because the blocks differ per keyword and have no single rank.

Pricing

Pay per event:

  • keyword-check: one per keyword whose search finished, covering up to 100 ranks actually read (relevance order always counts as one; a recent scan to rank 300 counts as three).
  • ranked-post: one per row of the optional ranked list.
  • Keywords that fail, stop early or have no blog results at all are not charged. Your rows for those keywords are still saved with found: null.
  • When your maximum cost per run is reached, the Actor does not start further keywords, cuts the ranked list where the budget ends, and finishes with a message telling you to raise the limit.

Scheduling tips

  • Create a task with your keywords and blogs and schedule it daily. Keep the same historyStoreName so every run compares with the one before.
  • Use a different historyStoreName per client or project. Stores created by other Actors cannot be opened; the run then continues without comparison and tells you to pick a new name.
  • Ranks of popular keywords move during the day; schedule at the same hour for comparable numbers.

Limits and notes

  • Results can differ slightly from what a logged-in user sees in their browser (personalisation, location).
  • publishedAt comes from Naver's display text: "3시간 전" is exact to the hour, "2주 전" or older posts are exact to the day only.
  • The default Apify datacenter proxy has worked in all our tests (0 failed requests out of about 115, Oct 2026). Switch to RESIDENTIAL with country KR only if the log shows repeated errors.
  • The Actor reads only public search results and returns blog IDs and post URLs, not author nicknames. Titles are written by bloggers and may contain whatever they chose to publish.
  • If Naver changes the page layout, affected keywords fail with stopReason: "layoutChanged" (not charged); please report it in the Issues tab.