diff --git a/src/remote/activitypub/models/person.ts b/src/remote/activitypub/models/person.ts
index aeffbeaf29..a40677dfc3 100644
--- a/src/remote/activitypub/models/person.ts
+++ b/src/remote/activitypub/models/person.ts
@@ -271,11 +271,6 @@ export async function updatePerson(uri: string, resolver?: Resolver | null, hint
 	}
 	//#endregion
 
-	// 繋がらないインスタンスに何回も試行するのを防ぐ, 後続の同様処理の連続試行を防ぐ ため 試行前にも更新する
-	await Users.update(exist.id, {
-		lastFetchedAt: new Date(),
-	});
-
 	if (resolver == null) resolver = new Resolver();
 
 	const object = hint || await resolver.resolve(uri) as any;
@@ -349,13 +344,13 @@ export async function updatePerson(uri: string, resolver?: Resolver | null, hint
 		url: person.url,
 		fields,
 		description: person.summary ? fromHtml(person.summary) : null,
-		twitterUserId: services.twitter.userId,
-		twitterScreenName: services.twitter.screenName,
-		githubId: services.github.id,
-		githubLogin: services.github.login,
-		discordId: services.discord.id,
-		discordUsername: services.discord.username,
-		discordDiscriminator: services.discord.discriminator,
+		twitterUserId: services.twitter ? services.twitter.userId : null,
+		twitterScreenName: services.twitter ? services.twitter.screenName : null,
+		githubId: services.github ? services.github.id : null,
+		githubLogin: services.github ? services.github.login : null,
+		discordId: services.discord ? services.discord.id : null,
+		discordUsername: services.discord ? services.discord.username : null,
+		discordDiscriminator: services.discord ? services.discord.discriminator : null,
 	});
 
 	// ハッシュタグ更新
diff --git a/src/remote/resolve-user.ts b/src/remote/resolve-user.ts
index a4bfca8422..0e2b88f05b 100644
--- a/src/remote/resolve-user.ts
+++ b/src/remote/resolve-user.ts
@@ -37,7 +37,7 @@ export async function resolveUser(username: string, host: string | null, option?
 		});
 	}
 
-	const user = await Users.findOne({ usernameLower, host }, option);
+	const user = await Users.findOne({ usernameLower, host }, option) as IRemoteUser;
 
 	const acctLower = `${usernameLower}@${host}`;
 
@@ -48,14 +48,20 @@ export async function resolveUser(username: string, host: string | null, option?
 		return await createPerson(self.href);
 	}
 
-	if (resync) {
+	// resyncオプション OR ユーザー情報が古い場合は、WebFilgerからやりなおして返す
+	if (resync || user.lastFetchedAt == null || Date.now() - user.lastFetchedAt.getTime() > 1000 * 60 * 60 * 24) {
+		// 繋がらないインスタンスに何回も試行するのを防ぐ, 後続の同様処理の連続試行を防ぐ ため 試行前にも更新する
+		await Users.update(user.id, {
+			lastFetchedAt: new Date(),
+		});
+
 		logger.info(`try resync: ${acctLower}`);
 		const self = await resolveSelf(acctLower);
 
-		if ((user as IRemoteUser).uri !== self.href) {
+		if (user.uri !== self.href) {
 			// if uri mismatch, Fix (user@host <=> AP's Person id(IRemoteUser.uri)) mapping.
 			logger.info(`uri missmatch: ${acctLower}`);
-			logger.info(`recovery missmatch uri for (username=${username}, host=${host}) from ${(user as IRemoteUser).uri} to ${self.href}`);
+			logger.info(`recovery missmatch uri for (username=${username}, host=${host}) from ${user.uri} to ${self.href}`);
 
 			// validate uri
 			const uri = new URL(self.href);
diff --git a/src/server/api/endpoints/users/show.ts b/src/server/api/endpoints/users/show.ts
index 46dc7341e6..a401166c55 100644
--- a/src/server/api/endpoints/users/show.ts
+++ b/src/server/api/endpoints/users/show.ts
@@ -95,13 +95,6 @@ export default define(meta, async (ps, me) => {
 			throw new ApiError(meta.errors.noSuchUser);
 		}
 
-		// ユーザー情報更新
-		if (Users.isRemoteUser(user)) {
-			if (user.lastFetchedAt == null || Date.now() - user.lastFetchedAt.getTime() > 1000 * 60 * 60 * 24) {
-				resolveUser(user.username, user.host, { }, true);
-			}
-		}
-
 		return await Users.pack(user, me, {
 			detail: true
 		});